{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "(parallel-magics)=\n",
    "\n",
    "# Parallel Magics\n",
    "\n",
    "IPython has a few magics to make working with your engines\n",
    "a bit nicer in IPython, e.g. in a Jupyter notebook.\n",
    "\n",
    "These are mainly shortcuts to {meth}`.DirectView.execute`\n",
    "and {meth}`.AsyncResult.display_outputs` methods, respectively.\n",
    "\n",
    "As always, first we start a cluster (or connect to an existing one):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting 4 engines with <class 'ipyparallel.cluster.launcher.LocalEngineSetLauncher'>\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6cc56f1a384d4ed286658cdb559c3210",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/4 [00:00<?, ?engine/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[0, 1, 2, 3]"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import ipyparallel as ipp\n",
    "\n",
    "rc = ipp.Cluster(n=4).start_and_connect_sync()\n",
    "dv = rc[:]\n",
    "rc.ids"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Creating a Client registers the parallel magics `%px`, `%%px`, `%pxresult`, `%pxconfig`, and `%autopx`.  \n",
    "These magics are initially associated with a DirectView that is blocking (`block=True`), always associated with all currently registered engines (`targets='all'`),\n",
    "i.e. adding/removing engines will change where this view's tasks will run."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The magics\n",
    "\n",
    "### `%px`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`px` stands for \"parallel execute\", and is available as both a line magic and cell magic.\n",
    "\n",
    "The %px magic executes a single Python command on the engines\n",
    "specified by the `targets` attribute of the {class}`DirectView` instance.\n",
    "The code entered here does _not_ execute in the local notebook's kernel.\n",
    "\n",
    "For very small operations, we can execute single lines remotely with the line magic `%px`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%px a=5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:1] 5\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] 5\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:0] 5\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] 5\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px print(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:3]: \u001b[0m5"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "a",
      "execute_result": {
       "data": {
        "text/plain": "5"
       },
       "execution_count": 3,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:50.140455Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:3]: \u001b[0m5"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "a",
      "execute_result": {
       "data": {
        "text/plain": "5"
       },
       "execution_count": 3,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:50.140943Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:3]: \u001b[0m5"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "a",
      "execute_result": {
       "data": {
        "text/plain": "5"
       },
       "execution_count": 3,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:50.141150Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:3]: \u001b[0m5"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:58:50.165426Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "a",
      "execute_result": {
       "data": {
        "text/plain": "5"
       },
       "execution_count": 3,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_12",
      "outputs": [],
      "received": "2024-11-04T10:58:50.167166Z",
      "started": "2024-11-04T10:58:50.161386Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:50.141231Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px print(\"hi\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### %%px cell magic\n",
    "\n",
    "The _main_ magic for use in a notebook is the `%%px` cell magic.\n",
    "\n",
    "`%%px` does the same thing as `%px`, but applies to the whole cell."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stderr:0] ERROR\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:1] ERROR\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:2] ERROR\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:3] ERROR\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px\n",
    "import sys\n",
    "\n",
    "print(\"ERROR\", file=sys.stderr)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Being a cell magic also frees up the line for options to configure the execution.\n",
    "\n",
    "To see available options, run `%%px?` (just like all magics):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mDocstring:\u001b[0m\n",
       "::\n",
       "\n",
       "  %cell_px [--signal-on-interrupt SIGNAL_ON_INTERRUPT]\n",
       "               [--progress-after PROGRESS_AFTER_SECONDS] [--no-verbose]\n",
       "               [--verbose] [-t TARGETS] [--no-stream] [--stream] [-a] [-b]\n",
       "               [-o SAVE_NAME] [--group-outputs {engine,order,type}] [-e] [-r]\n",
       "               [--local]\n",
       "\n",
       "Executes the cell in parallel.\n",
       "\n",
       "Examples\n",
       "--------\n",
       "::\n",
       "\n",
       "    In [24]: %%px --noblock\n",
       "       ....: a = os.getpid()\n",
       "    Async parallel execution on engine(s): all\n",
       "\n",
       "    In [25]: %%px\n",
       "       ....: print a\n",
       "    [stdout:0] 1234\n",
       "    [stdout:1] 1235\n",
       "    [stdout:2] 1236\n",
       "    [stdout:3] 1237\n",
       "\n",
       "options:\n",
       "  --signal-on-interrupt SIGNAL_ON_INTERRUPT\n",
       "                        Send signal to engines on Keyboard Interrupt. By\n",
       "                        default a SIGINT is sent. Note that this is only\n",
       "                        applicable when running in blocking mode. Choices:\n",
       "                        SIGINT, 2, SIGKILL, 9, 0 (nop), etc.\n",
       "  --progress-after PROGRESS_AFTER_SECONDS\n",
       "                        Wait this many seconds before showing a progress bar\n",
       "                        for task completion. Use -1 for no progress, 0 for\n",
       "                        always showing progress immediately.\n",
       "  --no-verbose          don't print any messages\n",
       "  --verbose             print a message at each execution\n",
       "  -t TARGETS, --targets TARGETS\n",
       "                        specify the targets on which to execute\n",
       "  --no-stream           do not stream stdout/stderr in real-time\n",
       "  --stream              stream stdout/stderr in real-time (only valid when\n",
       "                        using blocking execution)\n",
       "  -a, --noblock         use non-blocking (async) execution\n",
       "  -b, --block           use blocking (sync) execution\n",
       "  -o SAVE_NAME, --out SAVE_NAME\n",
       "                        store the AsyncResult object for this computation in\n",
       "                        the global namespace under this name.\n",
       "  --group-outputs <{engine,order,type}>\n",
       "                        Group the outputs in a particular way. Choices are:\n",
       "                        **type**: group outputs of all engines by type\n",
       "                        (stdout, stderr, displaypub, etc.). **engine**:\n",
       "                        display all output for each engine together.\n",
       "                        **order**: like type, but individual displaypub output\n",
       "                        from each engine is collated. For example, if multiple\n",
       "                        plots are generated by each engine, the first figure\n",
       "                        of each engine will be displayed, then the second of\n",
       "                        each, etc.\n",
       "  -e                    group outputs by engine (same as group-outputs=engine)\n",
       "  -r                    collate outputs in order (same as group-outputs=order)\n",
       "  --local               also execute the cell in the local namespace\n",
       "\u001b[0;31mFile:\u001b[0m      ~/dev/ip/parallel/ipyparallel/client/magics.py"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Targets\n",
    "\n",
    "You can specify where you want the code to run with the `--targets` argument.\n",
    "This lets you quickly set up different combinations of engines as appropriate.\n",
    "`--targets accepts slice syntax, so you can specify start, stop, and strides,\n",
    "just like you would slicing a list:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] I am even\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] I am even\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px --targets ::2\n",
    "print(\"I am even\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:1] I am number 1\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px --targets 1\n",
    "print(\"I am number 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] still 'all' by default\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] still 'all' by default\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] still 'all' by default\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] still 'all' by default\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px\n",
    "print(\"still 'all' by default\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When setting up your working environment, you might want to do some imports and define some functions _everywhere_, both on engines and here in your local notebook kernel.\n",
    "That's what `--local` is for:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%px --local\n",
    "import os\n",
    "import socket\n",
    "\n",
    "import psutil\n",
    "\n",
    "pid = os.getpid()\n",
    "p = psutil.Process()\n",
    "\n",
    "\n",
    "def report_info():\n",
    "    return {\n",
    "        \"hostname\": socket.gethostname(),\n",
    "        \"pid\": os.getpid(),\n",
    "        \"memory\": p.memory_info().rss,\n",
    "        \"cpu\": sum(p.cpu_times()),\n",
    "    }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'hostname': 'heavy-2.local',\n",
       " 'pid': 25688,\n",
       " 'memory': 82870272,\n",
       " 'cpu': 0.828767104}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "report_info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:9]: \u001b[0m\n",
       "{'hostname': 'heavy-2.local',\n",
       " 'pid': 25705,\n",
       " 'memory': 78331904,\n",
       " 'cpu': 0.500559408}"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "report_info()",
      "execute_result": {
       "data": {
        "text/plain": "{'hostname': 'heavy-2.local',\n 'pid': 25705,\n 'memory': 78331904,\n 'cpu': 0.500559408}"
       },
       "execution_count": 9,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:58.531039Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:9]: \u001b[0m\n",
       "{'hostname': 'heavy-2.local',\n",
       " 'pid': 25706,\n",
       " 'memory': 78675968,\n",
       " 'cpu': 0.50026576}"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "report_info()",
      "execute_result": {
       "data": {
        "text/plain": "{'hostname': 'heavy-2.local',\n 'pid': 25706,\n 'memory': 78675968,\n 'cpu': 0.50026576}"
       },
       "execution_count": 9,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:58.531290Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:9]: \u001b[0m\n",
       "{'hostname': 'heavy-2.local',\n",
       " 'pid': 25707,\n",
       " 'memory': 78020608,\n",
       " 'cpu': 0.501814376}"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "report_info()",
      "execute_result": {
       "data": {
        "text/plain": "{'hostname': 'heavy-2.local',\n 'pid': 25707,\n 'memory': 78020608,\n 'cpu': 0.501814376}"
       },
       "execution_count": 9,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:58.531514Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:8]: \u001b[0m\n",
       "{'hostname': 'heavy-2.local',\n",
       " 'pid': 25711,\n",
       " 'memory': 78954496,\n",
       " 'cpu': 0.489563088}"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "report_info()",
      "execute_result": {
       "data": {
        "text/plain": "{'hostname': 'heavy-2.local',\n 'pid': 25711,\n 'memory': 78954496,\n 'cpu': 0.489563088}"
       },
       "execution_count": 8,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:58.531813Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px report_info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Blocking (or not)\n",
    "\n",
    "You don't have to wait for results for every execution.\n",
    "`%%px --noblock` allows cells to return immediately, without waiting for the result:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 3.11 ms, sys: 2.61 ms, total: 5.72 ms\n",
      "Wall time: 6.25 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AsyncResult(%px): pending>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "%%px --noblock\n",
    "import time\n",
    "time.sleep(2)\n",
    "pid, time.time()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "But you will notice that this didn't output the result of the last command.\n",
    "For this, we have `%pxresult`, which waits for and displays the output of the latest request:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:10]: \u001b[0m(25705, 1730717941.915563)"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:01.928172Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "import time\ntime.sleep(2)\npid, time.time()\n",
      "execute_result": {
       "data": {
        "text/plain": "(25705, 1730717941.915563)"
       },
       "execution_count": 10,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_36",
      "outputs": [],
      "received": "2024-11-04T10:59:01.937149Z",
      "started": "2024-11-04T10:58:59.910427Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:59.896547Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:10]: \u001b[0m(25706, 1730717941.915562)"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:01.931585Z",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "import time\ntime.sleep(2)\npid, time.time()\n",
      "execute_result": {
       "data": {
        "text/plain": "(25706, 1730717941.915562)"
       },
       "execution_count": 10,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_37",
      "outputs": [],
      "received": "2024-11-04T10:59:01.938928Z",
      "started": "2024-11-04T10:58:59.911340Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:59.899876Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:10]: \u001b[0m(25707, 1730717941.918869)"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:01.931680Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "import time\ntime.sleep(2)\npid, time.time()\n",
      "execute_result": {
       "data": {
        "text/plain": "(25707, 1730717941.918869)"
       },
       "execution_count": 10,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_38",
      "outputs": [],
      "received": "2024-11-04T10:59:01.937824Z",
      "started": "2024-11-04T10:58:59.912839Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:59.900945Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:9]: \u001b[0m(25711, 1730717941.9218612)"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:01.934283Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "import time\ntime.sleep(2)\npid, time.time()\n",
      "execute_result": {
       "data": {
        "text/plain": "(25711, 1730717941.9218612)"
       },
       "execution_count": 9,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_39",
      "outputs": [],
      "received": "2024-11-04T10:59:01.939921Z",
      "started": "2024-11-04T10:58:59.915319Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T10:58:59.901237Z"
     },
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 13.5 ms, sys: 5.04 ms, total: 18.5 ms\n",
      "Wall time: 754 ms\n"
     ]
    }
   ],
   "source": [
    "%time %pxresult"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Configuring defaults with `%pxconfig`\n",
    "\n",
    "The `%pxconfig` magic lets you configure the _default_ behavior of the `%px` magics.\n",
    "`%pxconfig` takes the same arguments as `%%px`, but saves them as the default for future calls to `%px` or `%%px`.\n",
    "\n",
    "In a notebook, I would generally suggest using `%pxconfig` at most once to set up your environment,\n",
    "and use `%%px --options` for cells that have different behavior than the default.\n",
    "\n",
    "It is much easier to see what code does and there is less of the dreaded \"hidden notebook state.\"\n",
    "\n",
    "`%pxconfig` and other line magics are principally for line-based environments like terminal IPython,\n",
    "where cell magics are impractical.\n",
    "\n",
    "For example, setting the default targets with `%pxconfig`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:1] just 1\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pxconfig --targets 1\n",
    "%px print(\"just 1\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:1] 1 and 2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] 1 and 2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pxconfig --targets 1,2\n",
    "%px print(\"1 and 2\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] back to all\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] back to all\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] back to all\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] back to all\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pxconfig --targets all\n",
    "%px print(\"back to all\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Remote parallel magics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Remember, an IPython engine is IPython, so you can do magics remotely and in parallel as well!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] Variable      Type        Data/Info\n",
       "-----------------------------------\n",
       "p             Process     psutil.Process(pid=25705,<...>ing', started='11:58:29')\n",
       "pid           int         25705\n",
       "psutil        module      <module 'psutil' from '/U<...>ages/psutil/__init__.py'>\n",
       "report_info   function    <function report_info at 0x1071de980>\n",
       "socket        module      <module 'socket' from '/U<...>ib/python3.11/socket.py'>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] Variable      Type        Data/Info\n",
       "-----------------------------------\n",
       "p             Process     psutil.Process(pid=25706,<...>ing', started='11:58:29')\n",
       "pid           int         25706\n",
       "psutil        module      <module 'psutil' from '/U<...>ages/psutil/__init__.py'>\n",
       "report_info   function    <function report_info at 0x1068de840>\n",
       "socket        module      <module 'socket' from '/U<...>ib/python3.11/socket.py'>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] Variable      Type        Data/Info\n",
       "-----------------------------------\n",
       "p             Process     psutil.Process(pid=25707,<...>ing', started='11:58:29')\n",
       "pid           int         25707\n",
       "psutil        module      <module 'psutil' from '/U<...>ages/psutil/__init__.py'>\n",
       "report_info   function    <function report_info at 0x107db6660>\n",
       "socket        module      <module 'socket' from '/U<...>ib/python3.11/socket.py'>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] Variable      Type        Data/Info\n",
       "-----------------------------------\n",
       "p             Process     psutil.Process(pid=25711,<...>ing', started='11:58:29')\n",
       "pid           int         25711\n",
       "psutil        module      <module 'psutil' from '/U<...>ages/psutil/__init__.py'>\n",
       "report_info   function    <function report_info at 0x10afdee80>\n",
       "socket        module      <module 'socket' from '/U<...>ib/python3.11/socket.py'>\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px %whos"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Output\n",
    "\n",
    "IPython Parallel understands the Jupyter display protocol.\n",
    "When setting up a cluster, it is common for engines to want to know their own id or 'rank' in MPI parlance).\n",
    "\n",
    "You can do this with `scatter` and `flatten=True`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "dv = rc[:]\n",
    "dv.scatter('rank', dv.targets, flatten=True)\n",
    "dv['stride'] = len(dv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] 0 4\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] 1 4\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] 2 4\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] 3 4\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px print(rank, stride)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] 0\n",
       "4\n",
       "8\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] 2\n",
       "6\n",
       "10\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] 1\n",
       "5\n",
       "9\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] 3\n",
       "7\n",
       "11\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:16]: \u001b[0mText(0.5, 1.0, 'Plot 1')"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "%config InlineBackend.figure_format = 'svg'\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(0, np.pi, 1000)\nfor n in range(rank, 12, stride):  # noqa\n    print(n)\n    plt.plot(x, np.sin(n * x))\nplt.title(f\"Plot {rank}\")  # noqa\n",
      "execute_result": {
       "data": {
        "text/plain": "Text(0.5, 1.0, 'Plot 1')"
       },
       "execution_count": 16,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "1\n5\n9\n",
      "submitted": "2024-11-04T10:59:10.338184Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:13]: \u001b[0mText(0.5, 1.0, 'Plot 3')"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "%config InlineBackend.figure_format = 'svg'\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(0, np.pi, 1000)\nfor n in range(rank, 12, stride):  # noqa\n    print(n)\n    plt.plot(x, np.sin(n * x))\nplt.title(f\"Plot {rank}\")  # noqa\n",
      "execute_result": {
       "data": {
        "text/plain": "Text(0.5, 1.0, 'Plot 3')"
       },
       "execution_count": 13,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "3\n7\n11\n",
      "submitted": "2024-11-04T10:59:10.338552Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:15]: \u001b[0mText(0.5, 1.0, 'Plot 2')"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "%config InlineBackend.figure_format = 'svg'\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(0, np.pi, 1000)\nfor n in range(rank, 12, stride):  # noqa\n    print(n)\n    plt.plot(x, np.sin(n * x))\nplt.title(f\"Plot {rank}\")  # noqa\n",
      "execute_result": {
       "data": {
        "text/plain": "Text(0.5, 1.0, 'Plot 2')"
       },
       "execution_count": 15,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "2\n6\n10\n",
      "submitted": "2024-11-04T10:59:10.338378Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:14]: \u001b[0mText(0.5, 1.0, 'Plot 0')"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "%config InlineBackend.figure_format = 'svg'\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nx = np.linspace(0, np.pi, 1000)\nfor n in range(rank, 12, stride):  # noqa\n    print(n)\n    plt.plot(x, np.sin(n * x))\nplt.title(f\"Plot {rank}\")  # noqa\n",
      "execute_result": {
       "data": {
        "text/plain": "Text(0.5, 1.0, 'Plot 0')"
       },
       "execution_count": 14,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "0\n4\n8\n",
      "submitted": "2024-11-04T10:59:10.337693Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"610.045312pt\" height=\"388.834293pt\" viewBox=\"0 0 610.045312 388.834293\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2024-11-04T11:59:10.710350</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.9.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 388.834293 \n",
       "L 610.045312 388.834293 \n",
       "L 610.045312 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "L 44.845313 22.318125 \n",
       "z\n",
       "\" style=\"fill: #f2f2f2; fill-opacity: 0.5\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 70.208949 364.956168 \n",
       "L 70.208949 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"m0d221216f1\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"70.208949\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(62.257386 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 150.943911 364.956168 \n",
       "L 150.943911 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"150.943911\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(142.992348 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 231.678873 364.956168 \n",
       "L 231.678873 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"231.678873\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(223.72731 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 312.413835 364.956168 \n",
       "L 312.413835 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"312.413835\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(304.462272 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 393.148797 364.956168 \n",
       "L 393.148797 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"393.148797\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(385.197235 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 473.883759 364.956168 \n",
       "L 473.883759 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"473.883759\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 2.5 -->\n",
       "      <g transform=\"translate(465.932197 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 554.618721 364.956168 \n",
       "L 554.618721 22.318125 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0d221216f1\" x=\"554.618721\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 3.0 -->\n",
       "      <g transform=\"translate(546.667159 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 44.845313 349.381904 \n",
       "L 602.845312 349.381904 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <defs>\n",
       "       <path id=\"m0f9283b872\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"349.381904\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- −1.00 -->\n",
       "      <g transform=\"translate(7.2 353.181123) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2212\" d=\"M 678 2272 \n",
       "L 4684 2272 \n",
       "L 4684 1741 \n",
       "L 678 1741 \n",
       "L 678 2272 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-31\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 44.845313 310.445715 \n",
       "L 602.845312 310.445715 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"310.445715\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- −0.75 -->\n",
       "      <g transform=\"translate(7.2 314.244934) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-37\" d=\"M 525 4666 \n",
       "L 3525 4666 \n",
       "L 3525 4397 \n",
       "L 1831 0 \n",
       "L 1172 0 \n",
       "L 2766 4134 \n",
       "L 525 4134 \n",
       "L 525 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 44.845313 271.509526 \n",
       "L 602.845312 271.509526 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"271.509526\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- −0.50 -->\n",
       "      <g transform=\"translate(7.2 275.308744) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 44.845313 232.573336 \n",
       "L 602.845312 232.573336 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"232.573336\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- −0.25 -->\n",
       "      <g transform=\"translate(7.2 236.372555) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path d=\"M 44.845313 193.637147 \n",
       "L 602.845312 193.637147 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"193.637147\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 0.00 -->\n",
       "      <g transform=\"translate(15.579688 197.436365) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path d=\"M 44.845313 154.700957 \n",
       "L 602.845312 154.700957 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"154.700957\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 0.25 -->\n",
       "      <g transform=\"translate(15.579688 158.500176) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path d=\"M 44.845313 115.764768 \n",
       "L 602.845312 115.764768 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"115.764768\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 0.50 -->\n",
       "      <g transform=\"translate(15.579688 119.563987) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <path d=\"M 44.845313 76.828578 \n",
       "L 602.845312 76.828578 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"76.828578\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 0.75 -->\n",
       "      <g transform=\"translate(15.579688 80.627797) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <path d=\"M 44.845313 37.892389 \n",
       "L 602.845312 37.892389 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m0f9283b872\" x=\"44.845313\" y=\"37.892389\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_16\">\n",
       "      <!-- 1.00 -->\n",
       "      <g transform=\"translate(15.579688 41.691608) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_33\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_34\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 80.364559 154.867051 \n",
       "L 85.950145 134.432366 \n",
       "L 90.520169 118.537876 \n",
       "L 94.582413 105.210555 \n",
       "L 98.136877 94.278702 \n",
       "L 101.69134 84.116704 \n",
       "L 104.738023 76.079021 \n",
       "L 107.784706 68.710664 \n",
       "L 110.323609 63.112044 \n",
       "L 112.862512 58.029579 \n",
       "L 115.401414 53.483366 \n",
       "L 117.432536 50.244652 \n",
       "L 119.463658 47.368885 \n",
       "L 121.49478 44.863344 \n",
       "L 123.525902 42.734372 \n",
       "L 125.557024 40.987356 \n",
       "L 127.080366 39.93045 \n",
       "L 128.603707 39.092407 \n",
       "L 130.127049 38.474421 \n",
       "L 131.65039 38.077371 \n",
       "L 133.173732 37.901823 \n",
       "L 134.697073 37.948026 \n",
       "L 136.220415 38.215915 \n",
       "L 137.743756 38.705109 \n",
       "L 139.267098 39.41491 \n",
       "L 140.790439 40.344309 \n",
       "L 142.313781 41.491981 \n",
       "L 144.344903 43.358879 \n",
       "L 146.376025 45.606153 \n",
       "L 148.407147 48.228115 \n",
       "L 150.438269 51.218129 \n",
       "L 152.469391 54.568625 \n",
       "L 155.008294 59.250671 \n",
       "L 157.547196 64.46414 \n",
       "L 160.086099 70.188418 \n",
       "L 162.625001 76.400866 \n",
       "L 165.671684 84.46547 \n",
       "L 168.718367 93.151651 \n",
       "L 172.272831 104.004971 \n",
       "L 175.827294 115.552785 \n",
       "L 179.889539 129.485687 \n",
       "L 184.459563 145.928786 \n",
       "L 190.552929 168.765499 \n",
       "L 211.879711 249.656781 \n",
       "L 216.449735 265.714936 \n",
       "L 220.511979 279.220289 \n",
       "L 224.066443 290.33159 \n",
       "L 227.620906 300.693677 \n",
       "L 230.667589 308.918123 \n",
       "L 233.714272 316.486208 \n",
       "L 236.253175 322.260354 \n",
       "L 238.792077 327.525866 \n",
       "L 241.33098 332.261922 \n",
       "L 243.869883 336.449794 \n",
       "L 245.901005 339.394196 \n",
       "L 247.932127 341.969666 \n",
       "L 249.963249 344.169685 \n",
       "L 251.994371 345.988683 \n",
       "L 253.517712 347.100082 \n",
       "L 255.041054 347.992964 \n",
       "L 256.564395 348.666059 \n",
       "L 258.087737 349.118409 \n",
       "L 259.611078 349.349368 \n",
       "L 261.13442 349.358609 \n",
       "L 262.657761 349.146118 \n",
       "L 264.181103 348.712198 \n",
       "L 265.704444 348.057466 \n",
       "L 267.227786 347.182854 \n",
       "L 268.751127 346.089609 \n",
       "L 270.274469 344.779287 \n",
       "L 272.305591 342.697784 \n",
       "L 274.336713 340.238987 \n",
       "L 276.367835 337.409119 \n",
       "L 278.398957 334.215344 \n",
       "L 280.430079 330.665745 \n",
       "L 282.968982 325.74214 \n",
       "L 285.507884 320.296132 \n",
       "L 288.046787 314.349259 \n",
       "L 291.09347 306.585114 \n",
       "L 294.140153 298.17789 \n",
       "L 297.694616 287.620735 \n",
       "L 301.24908 276.33537 \n",
       "L 305.311324 262.658529 \n",
       "L 309.881349 246.444489 \n",
       "L 315.466934 225.730801 \n",
       "L 323.591422 194.616693 \n",
       "L 333.747032 155.816528 \n",
       "L 339.332618 135.339548 \n",
       "L 343.902643 119.397507 \n",
       "L 347.964887 106.018657 \n",
       "L 351.51935 95.034989 \n",
       "L 355.073814 84.815316 \n",
       "L 358.120497 76.72387 \n",
       "L 361.16718 69.29808 \n",
       "L 363.706082 63.649029 \n",
       "L 366.244985 58.514009 \n",
       "L 368.783887 53.913326 \n",
       "L 370.815009 50.629802 \n",
       "L 372.846132 47.708249 \n",
       "L 374.877254 45.156064 \n",
       "L 376.908376 42.979706 \n",
       "L 378.939498 41.184684 \n",
       "L 380.462839 40.091439 \n",
       "L 381.986181 39.216828 \n",
       "L 383.509522 38.562096 \n",
       "L 385.032864 38.128175 \n",
       "L 386.556205 37.915684 \n",
       "L 388.079547 37.924925 \n",
       "L 389.602888 38.155884 \n",
       "L 391.12623 38.608234 \n",
       "L 392.649571 39.281329 \n",
       "L 394.172913 40.174212 \n",
       "L 395.696254 41.28561 \n",
       "L 397.727376 43.104609 \n",
       "L 399.758498 45.304627 \n",
       "L 401.78962 47.880097 \n",
       "L 403.820742 50.824499 \n",
       "L 405.851865 54.13038 \n",
       "L 408.390767 58.75823 \n",
       "L 410.92967 63.919451 \n",
       "L 413.468572 69.593633 \n",
       "L 416.007475 75.758339 \n",
       "L 419.054158 83.769022 \n",
       "L 422.100841 92.405247 \n",
       "L 425.655304 103.205674 \n",
       "L 429.209768 114.706788 \n",
       "L 433.272012 128.594365 \n",
       "L 437.842036 144.997273 \n",
       "L 443.935403 167.799016 \n",
       "L 465.769964 250.56966 \n",
       "L 470.339989 266.581845 \n",
       "L 474.402233 280.036996 \n",
       "L 477.956697 291.097571 \n",
       "L 481.51116 301.402998 \n",
       "L 484.557843 309.574486 \n",
       "L 487.604526 317.085876 \n",
       "L 490.143429 322.810153 \n",
       "L 492.682331 328.023622 \n",
       "L 495.221234 332.705668 \n",
       "L 497.252356 336.056165 \n",
       "L 499.283478 339.046178 \n",
       "L 501.3146 341.66814 \n",
       "L 503.345722 343.915414 \n",
       "L 505.376844 345.782312 \n",
       "L 506.900186 346.929985 \n",
       "L 508.423527 347.859383 \n",
       "L 509.946869 348.569185 \n",
       "L 511.47021 349.058378 \n",
       "L 512.993552 349.326267 \n",
       "L 514.516893 349.372471 \n",
       "L 516.040235 349.196922 \n",
       "L 517.563576 348.799872 \n",
       "L 519.086918 348.181886 \n",
       "L 520.610259 347.343843 \n",
       "L 522.133601 346.286937 \n",
       "L 523.656942 345.012674 \n",
       "L 525.688064 342.978723 \n",
       "L 527.719186 340.566766 \n",
       "L 529.750308 337.78291 \n",
       "L 531.78143 334.6342 \n",
       "L 533.812552 331.128605 \n",
       "L 536.351455 326.258346 \n",
       "L 538.890358 320.863643 \n",
       "L 541.42926 314.965831 \n",
       "L 544.475943 307.257322 \n",
       "L 547.522626 298.901909 \n",
       "L 550.569309 289.947163 \n",
       "L 554.123773 278.810665 \n",
       "L 558.186017 265.280411 \n",
       "L 562.756041 249.199508 \n",
       "L 567.833846 230.506792 \n",
       "L 574.942774 203.426217 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_35\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 76.302315 147.329583 \n",
       "L 79.856779 121.993883 \n",
       "L 82.903462 102.013446 \n",
       "L 85.442364 86.936866 \n",
       "L 87.473486 76.079021 \n",
       "L 89.504608 66.41065 \n",
       "L 91.53573 58.029579 \n",
       "L 93.059072 52.640094 \n",
       "L 94.582413 48.053386 \n",
       "L 96.105755 44.295571 \n",
       "L 97.121316 42.26162 \n",
       "L 98.136877 40.610822 \n",
       "L 99.152438 39.347357 \n",
       "L 100.167999 38.474421 \n",
       "L 101.18356 37.994225 \n",
       "L 102.199121 37.907983 \n",
       "L 103.214682 38.215915 \n",
       "L 104.230243 38.917241 \n",
       "L 105.245804 40.010185 \n",
       "L 106.261365 41.491981 \n",
       "L 107.276926 43.358879 \n",
       "L 108.292487 45.606153 \n",
       "L 109.815828 49.677567 \n",
       "L 111.33917 54.568625 \n",
       "L 112.862512 60.251481 \n",
       "L 114.385853 66.693778 \n",
       "L 116.416975 76.400866 \n",
       "L 118.448097 87.294172 \n",
       "L 120.987 102.409954 \n",
       "L 123.525902 118.967322 \n",
       "L 126.572585 140.369302 \n",
       "L 130.634829 170.701379 \n",
       "L 141.29822 251.480288 \n",
       "L 144.344903 272.567505 \n",
       "L 146.883806 288.788184 \n",
       "L 149.422708 303.505272 \n",
       "L 151.45383 314.039182 \n",
       "L 153.484952 323.354842 \n",
       "L 155.008294 329.484919 \n",
       "L 156.531635 334.841537 \n",
       "L 158.054977 339.394196 \n",
       "L 159.578318 343.116977 \n",
       "L 160.593879 345.127122 \n",
       "L 161.60944 346.753823 \n",
       "L 162.625001 347.992964 \n",
       "L 163.640562 348.841408 \n",
       "L 164.656123 349.297008 \n",
       "L 165.671684 349.358609 \n",
       "L 166.687245 349.026057 \n",
       "L 167.702806 348.300193 \n",
       "L 168.718367 347.182854 \n",
       "L 169.733928 345.676869 \n",
       "L 170.749489 343.786049 \n",
       "L 171.76505 341.515181 \n",
       "L 173.288392 337.409119 \n",
       "L 174.811733 332.484482 \n",
       "L 176.335075 326.769306 \n",
       "L 177.858417 320.296132 \n",
       "L 179.889539 310.550423 \n",
       "L 181.920661 299.621764 \n",
       "L 184.459563 284.466928 \n",
       "L 186.998466 267.876787 \n",
       "L 190.045149 246.444489 \n",
       "L 194.107393 216.088366 \n",
       "L 204.770783 135.339548 \n",
       "L 207.817466 114.284959 \n",
       "L 210.356369 98.098837 \n",
       "L 212.895272 83.422425 \n",
       "L 214.926394 72.925034 \n",
       "L 216.957516 63.649029 \n",
       "L 218.480857 57.550513 \n",
       "L 220.004199 52.226816 \n",
       "L 221.52754 47.708249 \n",
       "L 223.050882 44.02054 \n",
       "L 224.066443 42.034221 \n",
       "L 225.082004 40.431632 \n",
       "L 226.097565 39.216828 \n",
       "L 227.113126 38.392884 \n",
       "L 228.128687 37.961886 \n",
       "L 229.144248 37.924925 \n",
       "L 230.159809 38.282094 \n",
       "L 231.17537 39.032489 \n",
       "L 232.190931 40.174212 \n",
       "L 233.206492 41.704371 \n",
       "L 234.222053 43.619094 \n",
       "L 235.237614 45.913535 \n",
       "L 236.760955 50.054203 \n",
       "L 238.284297 55.012371 \n",
       "L 239.807638 60.75981 \n",
       "L 241.33098 67.263797 \n",
       "L 243.362102 77.048031 \n",
       "L 245.393224 88.011934 \n",
       "L 247.932127 103.205674 \n",
       "L 250.471029 119.828425 \n",
       "L 253.517712 141.290828 \n",
       "L 257.579956 171.670699 \n",
       "L 267.735566 248.741685 \n",
       "L 270.782249 270.020283 \n",
       "L 273.321152 286.444921 \n",
       "L 275.860055 301.402998 \n",
       "L 277.891177 312.153818 \n",
       "L 279.922299 321.705466 \n",
       "L 281.44564 328.023622 \n",
       "L 282.968982 333.576639 \n",
       "L 284.492323 338.3329 \n",
       "L 286.015665 342.265324 \n",
       "L 287.031226 344.418 \n",
       "L 288.046787 346.189028 \n",
       "L 289.062348 347.573924 \n",
       "L 290.077909 348.569185 \n",
       "L 291.09347 349.172289 \n",
       "L 292.109031 349.381712 \n",
       "L 293.124592 349.196922 \n",
       "L 294.140153 348.618388 \n",
       "L 295.155714 347.647574 \n",
       "L 296.171275 346.286937 \n",
       "L 297.186836 344.539922 \n",
       "L 298.202397 342.410949 \n",
       "L 299.725738 338.51337 \n",
       "L 301.24908 333.790928 \n",
       "L 302.772421 328.270509 \n",
       "L 304.295763 321.983545 \n",
       "L 306.326885 312.470994 \n",
       "L 308.358007 301.756062 \n",
       "L 310.389129 289.947163 \n",
       "L 312.928032 273.830635 \n",
       "L 315.974715 252.841927 \n",
       "L 319.529178 226.68869 \n",
       "L 333.239252 123.739027 \n",
       "L 336.285935 103.604878 \n",
       "L 338.824837 88.372384 \n",
       "L 340.85596 77.373344 \n",
       "L 342.887082 67.550682 \n",
       "L 344.918204 59.003785 \n",
       "L 346.441545 53.483366 \n",
       "L 347.964887 48.760923 \n",
       "L 349.488228 44.863344 \n",
       "L 350.503789 42.734372 \n",
       "L 351.51935 40.987356 \n",
       "L 352.534911 39.626719 \n",
       "L 353.550472 38.655905 \n",
       "L 354.566033 38.077371 \n",
       "L 355.581594 37.892582 \n",
       "L 356.597155 38.102004 \n",
       "L 357.612716 38.705109 \n",
       "L 358.628277 39.700369 \n",
       "L 359.643838 41.085266 \n",
       "L 360.659399 42.856293 \n",
       "L 361.67496 45.008969 \n",
       "L 363.198302 48.941394 \n",
       "L 364.721643 53.697654 \n",
       "L 366.244985 59.250671 \n",
       "L 367.768326 65.568827 \n",
       "L 369.799448 75.120475 \n",
       "L 371.83057 85.871295 \n",
       "L 373.861693 97.712509 \n",
       "L 376.400595 113.863914 \n",
       "L 379.447278 134.885666 \n",
       "L 383.001742 161.064387 \n",
       "L 396.711815 263.9726 \n",
       "L 399.758498 284.068619 \n",
       "L 402.297401 299.262359 \n",
       "L 404.328523 310.226263 \n",
       "L 406.359645 320.010497 \n",
       "L 408.390767 328.516063 \n",
       "L 409.914109 334.00383 \n",
       "L 411.43745 338.692408 \n",
       "L 412.960792 342.555103 \n",
       "L 413.976353 344.660351 \n",
       "L 414.991914 346.383338 \n",
       "L 416.007475 347.719701 \n",
       "L 417.023036 348.666059 \n",
       "L 418.038597 349.220017 \n",
       "L 419.054158 349.380172 \n",
       "L 420.069719 349.146118 \n",
       "L 421.08528 348.518449 \n",
       "L 422.100841 347.498752 \n",
       "L 423.116402 346.089609 \n",
       "L 424.131963 344.294587 \n",
       "L 425.147524 342.118229 \n",
       "L 426.670865 338.150998 \n",
       "L 428.194207 333.360967 \n",
       "L 429.717548 327.775407 \n",
       "L 431.24089 321.426121 \n",
       "L 433.272012 311.835471 \n",
       "L 435.303134 301.048869 \n",
       "L 437.334256 289.175456 \n",
       "L 439.873159 272.989334 \n",
       "L 442.919842 251.934746 \n",
       "L 446.474305 225.730801 \n",
       "L 459.676598 126.377394 \n",
       "L 462.723281 106.018657 \n",
       "L 465.262184 90.556818 \n",
       "L 467.293306 79.349257 \n",
       "L 469.324428 69.29808 \n",
       "L 471.35555 60.504987 \n",
       "L 472.878892 54.789812 \n",
       "L 474.402233 49.865174 \n",
       "L 475.925575 45.759113 \n",
       "L 476.941136 43.488244 \n",
       "L 477.956697 41.597424 \n",
       "L 478.972258 40.091439 \n",
       "L 479.987819 38.9741 \n",
       "L 481.00338 38.248236 \n",
       "L 482.018941 37.915684 \n",
       "L 483.034502 37.977286 \n",
       "L 484.050063 38.432885 \n",
       "L 485.065624 39.281329 \n",
       "L 486.081185 40.52047 \n",
       "L 487.096746 42.147172 \n",
       "L 488.112307 44.157316 \n",
       "L 489.127868 46.545816 \n",
       "L 490.651209 50.824499 \n",
       "L 492.174551 55.916296 \n",
       "L 493.697892 61.792218 \n",
       "L 495.221234 68.418808 \n",
       "L 497.252356 78.35617 \n",
       "L 499.283478 89.459965 \n",
       "L 501.82238 104.807814 \n",
       "L 504.361283 121.559357 \n",
       "L 507.407966 143.140056 \n",
       "L 511.47021 173.611907 \n",
       "L 521.11804 246.904991 \n",
       "L 524.164723 268.306971 \n",
       "L 526.703625 284.864339 \n",
       "L 529.242528 299.980122 \n",
       "L 531.27365 310.873427 \n",
       "L 533.304772 320.580516 \n",
       "L 535.335894 329.003169 \n",
       "L 536.859236 334.425468 \n",
       "L 538.382577 339.046178 \n",
       "L 539.905919 342.838991 \n",
       "L 540.92148 344.896728 \n",
       "L 541.937041 346.571605 \n",
       "L 542.952602 347.859383 \n",
       "L 543.968163 348.756802 \n",
       "L 544.983724 349.26159 \n",
       "L 545.999285 349.372471 \n",
       "L 547.014846 349.089162 \n",
       "L 548.030407 348.412382 \n",
       "L 549.045968 347.343843 \n",
       "L 550.061529 345.886251 \n",
       "L 551.07709 344.043293 \n",
       "L 552.092651 341.819636 \n",
       "L 553.615992 337.78291 \n",
       "L 555.139334 332.925479 \n",
       "L 556.662675 327.275 \n",
       "L 558.186017 320.863643 \n",
       "L 560.217139 311.195272 \n",
       "L 562.248261 300.337427 \n",
       "L 564.787163 285.260848 \n",
       "L 567.326066 268.736418 \n",
       "L 570.372749 247.364966 \n",
       "L 574.434993 217.057237 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p93a4126223)\" style=\"fill: none; stroke: #2ca02c; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 44.845313 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 44.845313 22.318125 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- Plot 0 -->\n",
       "    <g transform=\"translate(306.812812 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-50\" d=\"M 1259 4147 \n",
       "L 1259 2394 \n",
       "L 2053 2394 \n",
       "Q 2494 2394 2734 2622 \n",
       "Q 2975 2850 2975 3272 \n",
       "Q 2975 3691 2734 3919 \n",
       "Q 2494 4147 2053 4147 \n",
       "L 1259 4147 \n",
       "z\n",
       "M 628 4666 \n",
       "L 2053 4666 \n",
       "Q 2838 4666 3239 4311 \n",
       "Q 3641 3956 3641 3272 \n",
       "Q 3641 2581 3239 2228 \n",
       "Q 2838 1875 2053 1875 \n",
       "L 1259 1875 \n",
       "L 1259 0 \n",
       "L 628 0 \n",
       "L 628 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-50\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"60.302734\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6f\" x=\"88.085938\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-74\" x=\"149.267578\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"188.476562\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-30\" x=\"220.263672\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p93a4126223\">\n",
       "   <rect x=\"44.845313\" y=\"22.318125\" width=\"558\" height=\"342.638043\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 1000x618.034 with 1 Axes>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"610.045312pt\" height=\"388.834293pt\" viewBox=\"0 0 610.045312 388.834293\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2024-11-04T11:59:10.710398</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.9.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 388.834293 \n",
       "L 610.045312 388.834293 \n",
       "L 610.045312 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "L 44.845313 22.318125 \n",
       "z\n",
       "\" style=\"fill: #f2f2f2; fill-opacity: 0.5\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 70.208949 364.956168 \n",
       "L 70.208949 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"m95c06dbb4c\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"70.208949\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(62.257386 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 150.943911 364.956168 \n",
       "L 150.943911 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"150.943911\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(142.992348 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 231.678873 364.956168 \n",
       "L 231.678873 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"231.678873\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(223.72731 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 312.413835 364.956168 \n",
       "L 312.413835 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"312.413835\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(304.462272 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 393.148797 364.956168 \n",
       "L 393.148797 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"393.148797\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(385.197235 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 473.883759 364.956168 \n",
       "L 473.883759 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"473.883759\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 2.5 -->\n",
       "      <g transform=\"translate(465.932197 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 554.618721 364.956168 \n",
       "L 554.618721 22.318125 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m95c06dbb4c\" x=\"554.618721\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 3.0 -->\n",
       "      <g transform=\"translate(546.667159 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 44.845313 349.381904 \n",
       "L 602.845312 349.381904 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <defs>\n",
       "       <path id=\"ma0c541ecb3\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"349.381904\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- −1.00 -->\n",
       "      <g transform=\"translate(7.2 353.181123) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2212\" d=\"M 678 2272 \n",
       "L 4684 2272 \n",
       "L 4684 1741 \n",
       "L 678 1741 \n",
       "L 678 2272 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-31\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 44.845313 310.445715 \n",
       "L 602.845312 310.445715 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"310.445715\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- −0.75 -->\n",
       "      <g transform=\"translate(7.2 314.244934) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-37\" d=\"M 525 4666 \n",
       "L 3525 4666 \n",
       "L 3525 4397 \n",
       "L 1831 0 \n",
       "L 1172 0 \n",
       "L 2766 4134 \n",
       "L 525 4134 \n",
       "L 525 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 44.845313 271.509526 \n",
       "L 602.845312 271.509526 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"271.509526\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- −0.50 -->\n",
       "      <g transform=\"translate(7.2 275.308744) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 44.845313 232.573336 \n",
       "L 602.845312 232.573336 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"232.573336\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- −0.25 -->\n",
       "      <g transform=\"translate(7.2 236.372555) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path d=\"M 44.845313 193.637147 \n",
       "L 602.845312 193.637147 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"193.637147\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 0.00 -->\n",
       "      <g transform=\"translate(15.579688 197.436365) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path d=\"M 44.845313 154.700957 \n",
       "L 602.845312 154.700957 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"154.700957\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 0.25 -->\n",
       "      <g transform=\"translate(15.579688 158.500176) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path d=\"M 44.845313 115.764768 \n",
       "L 602.845312 115.764768 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"115.764768\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 0.50 -->\n",
       "      <g transform=\"translate(15.579688 119.563987) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <path d=\"M 44.845313 76.828578 \n",
       "L 602.845312 76.828578 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"76.828578\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 0.75 -->\n",
       "      <g transform=\"translate(15.579688 80.627797) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <path d=\"M 44.845313 37.892389 \n",
       "L 602.845312 37.892389 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma0c541ecb3\" x=\"44.845313\" y=\"37.892389\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_16\">\n",
       "      <!-- 1.00 -->\n",
       "      <g transform=\"translate(15.579688 41.691608) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_33\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 86.965706 161.543492 \n",
       "L 96.105755 144.532236 \n",
       "L 103.722462 130.827416 \n",
       "L 110.323609 119.397507 \n",
       "L 116.416975 109.285401 \n",
       "L 122.002561 100.436511 \n",
       "L 127.080366 92.77795 \n",
       "L 132.158171 85.518232 \n",
       "L 136.728195 79.349257 \n",
       "L 141.29822 73.54638 \n",
       "L 145.868245 68.128191 \n",
       "L 149.930489 63.649029 \n",
       "L 153.992733 59.498886 \n",
       "L 158.054977 55.688267 \n",
       "L 161.60944 52.640094 \n",
       "L 165.163904 49.865174 \n",
       "L 168.718367 47.368885 \n",
       "L 172.272831 45.156064 \n",
       "L 175.827294 43.231 \n",
       "L 178.873978 41.81282 \n",
       "L 181.920661 40.610822 \n",
       "L 184.967344 39.626719 \n",
       "L 188.014027 38.861911 \n",
       "L 191.06071 38.317488 \n",
       "L 194.107393 37.994225 \n",
       "L 197.154076 37.892582 \n",
       "L 200.200759 38.012703 \n",
       "L 203.247442 38.354418 \n",
       "L 206.294125 38.917241 \n",
       "L 209.340808 39.700369 \n",
       "L 212.387491 40.702688 \n",
       "L 215.434174 41.92277 \n",
       "L 218.480857 43.358879 \n",
       "L 222.035321 45.304627 \n",
       "L 225.589784 47.537845 \n",
       "L 229.144248 50.054203 \n",
       "L 232.698711 52.848825 \n",
       "L 236.253175 55.916296 \n",
       "L 239.807638 59.250671 \n",
       "L 243.869883 63.379893 \n",
       "L 247.932127 67.838814 \n",
       "L 251.994371 72.61615 \n",
       "L 256.564395 78.35617 \n",
       "L 261.13442 84.46547 \n",
       "L 265.704444 90.92448 \n",
       "L 270.782249 98.48611 \n",
       "L 276.367835 107.237298 \n",
       "L 281.953421 116.40187 \n",
       "L 288.046787 126.819476 \n",
       "L 294.647933 138.532608 \n",
       "L 302.264641 152.500148 \n",
       "L 311.40469 169.732966 \n",
       "L 326.638105 199.023612 \n",
       "L 340.85596 226.209906 \n",
       "L 349.996009 243.206609 \n",
       "L 357.612716 256.894747 \n",
       "L 364.213863 268.306971 \n",
       "L 370.307229 278.400198 \n",
       "L 375.892815 287.229721 \n",
       "L 380.97062 294.869047 \n",
       "L 386.048425 302.108056 \n",
       "L 390.618449 308.2572 \n",
       "L 395.188474 314.039182 \n",
       "L 399.758498 319.435479 \n",
       "L 403.820742 323.894401 \n",
       "L 407.882987 328.023622 \n",
       "L 411.945231 331.812692 \n",
       "L 415.499694 334.841537 \n",
       "L 419.054158 337.596727 \n",
       "L 422.608621 340.072922 \n",
       "L 426.163085 342.265324 \n",
       "L 429.717548 344.169685 \n",
       "L 432.764231 345.569923 \n",
       "L 435.810914 346.753823 \n",
       "L 438.857598 347.719701 \n",
       "L 441.904281 348.466181 \n",
       "L 444.950964 348.992199 \n",
       "L 447.997647 349.297008 \n",
       "L 451.04433 349.380172 \n",
       "L 454.091013 349.241573 \n",
       "L 457.137696 348.881409 \n",
       "L 460.184379 348.300193 \n",
       "L 463.231062 347.498752 \n",
       "L 466.277745 346.478227 \n",
       "L 469.324428 345.240072 \n",
       "L 472.371111 343.786049 \n",
       "L 475.925575 341.819636 \n",
       "L 479.480038 339.566044 \n",
       "L 483.034502 337.029642 \n",
       "L 486.588965 334.215344 \n",
       "L 490.143429 331.128605 \n",
       "L 493.697892 327.775407 \n",
       "L 497.760136 323.625264 \n",
       "L 501.82238 319.146103 \n",
       "L 505.884625 314.349259 \n",
       "L 510.454649 308.58823 \n",
       "L 515.024674 302.458978 \n",
       "L 520.102479 295.240749 \n",
       "L 525.180284 287.620735 \n",
       "L 530.765869 278.810665 \n",
       "L 536.351455 269.593078 \n",
       "L 542.444821 259.124627 \n",
       "L 549.553748 246.444489 \n",
       "L 557.678236 231.457765 \n",
       "L 567.833846 212.204384 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_34\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 77.825656 150.143417 \n",
       "L 81.887901 128.149667 \n",
       "L 85.442364 110.11051 \n",
       "L 88.489047 95.795175 \n",
       "L 91.02795 84.815316 \n",
       "L 93.566852 74.803299 \n",
       "L 95.597974 67.550682 \n",
       "L 97.629096 61.015947 \n",
       "L 99.660218 55.236302 \n",
       "L 101.69134 50.244652 \n",
       "L 103.214682 47.035306 \n",
       "L 104.738023 44.295571 \n",
       "L 106.261365 42.034221 \n",
       "L 107.784706 40.258502 \n",
       "L 108.800267 39.347357 \n",
       "L 109.815828 38.655905 \n",
       "L 110.831389 38.185131 \n",
       "L 111.846951 37.935706 \n",
       "L 112.862512 37.907983 \n",
       "L 113.878073 38.102004 \n",
       "L 114.893634 38.517491 \n",
       "L 115.909195 39.153854 \n",
       "L 116.924756 40.010185 \n",
       "L 117.940317 41.085266 \n",
       "L 119.463658 43.104609 \n",
       "L 120.987 45.606153 \n",
       "L 122.510341 48.581885 \n",
       "L 124.033683 52.022273 \n",
       "L 125.557024 55.916296 \n",
       "L 127.588146 61.792218 \n",
       "L 129.619268 68.418808 \n",
       "L 131.65039 75.758339 \n",
       "L 134.189293 85.871295 \n",
       "L 136.728195 96.942703 \n",
       "L 139.774878 111.354358 \n",
       "L 142.821561 126.819476 \n",
       "L 146.883806 148.734502 \n",
       "L 151.961611 177.503522 \n",
       "L 163.132782 241.345507 \n",
       "L 167.195026 263.097241 \n",
       "L 170.749489 280.850284 \n",
       "L 173.796172 294.869047 \n",
       "L 176.335075 305.568432 \n",
       "L 178.873978 315.272318 \n",
       "L 180.9051 322.260354 \n",
       "L 182.936222 328.516063 \n",
       "L 184.967344 334.00383 \n",
       "L 186.490685 337.596727 \n",
       "L 188.014027 340.728477 \n",
       "L 189.537368 343.38905 \n",
       "L 191.06071 345.569923 \n",
       "L 192.584051 347.264108 \n",
       "L 193.599612 348.12044 \n",
       "L 194.615173 348.756802 \n",
       "L 195.630734 349.172289 \n",
       "L 196.646295 349.36631 \n",
       "L 197.661856 349.338588 \n",
       "L 198.677417 349.089162 \n",
       "L 199.692978 348.618388 \n",
       "L 200.708539 347.926937 \n",
       "L 201.7241 347.015792 \n",
       "L 202.739661 345.886251 \n",
       "L 204.263003 343.786049 \n",
       "L 205.786344 341.204876 \n",
       "L 207.309686 338.150998 \n",
       "L 208.833027 334.6342 \n",
       "L 210.86415 329.244715 \n",
       "L 212.895272 323.083138 \n",
       "L 214.926394 316.18455 \n",
       "L 216.957516 308.58823 \n",
       "L 219.496418 298.17789 \n",
       "L 222.035321 286.837782 \n",
       "L 225.082004 272.144895 \n",
       "L 228.636467 253.746767 \n",
       "L 232.698711 231.457765 \n",
       "L 238.792077 196.57563 \n",
       "L 246.916566 150.143417 \n",
       "L 250.97881 128.149667 \n",
       "L 254.533273 110.11051 \n",
       "L 257.579956 95.795175 \n",
       "L 260.118859 84.815316 \n",
       "L 262.657761 74.803299 \n",
       "L 264.688883 67.550682 \n",
       "L 266.720005 61.015947 \n",
       "L 268.751127 55.236302 \n",
       "L 270.782249 50.244652 \n",
       "L 272.305591 47.035306 \n",
       "L 273.828932 44.295571 \n",
       "L 275.352274 42.034221 \n",
       "L 276.875616 40.258502 \n",
       "L 277.891177 39.347357 \n",
       "L 278.906738 38.655905 \n",
       "L 279.922299 38.185131 \n",
       "L 280.93786 37.935706 \n",
       "L 281.953421 37.907983 \n",
       "L 282.968982 38.102004 \n",
       "L 283.984543 38.517491 \n",
       "L 285.000104 39.153854 \n",
       "L 286.015665 40.010185 \n",
       "L 287.031226 41.085266 \n",
       "L 288.554567 43.104609 \n",
       "L 290.077909 45.606153 \n",
       "L 291.60125 48.581885 \n",
       "L 293.124592 52.022273 \n",
       "L 294.647933 55.916296 \n",
       "L 296.679055 61.792218 \n",
       "L 298.710177 68.418808 \n",
       "L 300.741299 75.758339 \n",
       "L 303.280202 85.871295 \n",
       "L 305.819104 96.942703 \n",
       "L 308.865788 111.354358 \n",
       "L 311.912471 126.819476 \n",
       "L 315.974715 148.734502 \n",
       "L 321.05252 177.503522 \n",
       "L 332.223691 241.345507 \n",
       "L 336.285935 263.097241 \n",
       "L 339.840398 280.850284 \n",
       "L 342.887082 294.869047 \n",
       "L 345.425984 305.568432 \n",
       "L 347.964887 315.272318 \n",
       "L 349.996009 322.260354 \n",
       "L 352.027131 328.516063 \n",
       "L 354.058253 334.00383 \n",
       "L 355.581594 337.596727 \n",
       "L 357.104936 340.728477 \n",
       "L 358.628277 343.38905 \n",
       "L 360.151619 345.569923 \n",
       "L 361.67496 347.264108 \n",
       "L 362.690521 348.12044 \n",
       "L 363.706082 348.756802 \n",
       "L 364.721643 349.172289 \n",
       "L 365.737204 349.36631 \n",
       "L 366.752765 349.338588 \n",
       "L 367.768326 349.089162 \n",
       "L 368.783887 348.618388 \n",
       "L 369.799448 347.926937 \n",
       "L 370.815009 347.015792 \n",
       "L 371.83057 345.886251 \n",
       "L 373.353912 343.786049 \n",
       "L 374.877254 341.204876 \n",
       "L 376.400595 338.150998 \n",
       "L 377.923937 334.6342 \n",
       "L 379.955059 329.244715 \n",
       "L 381.986181 323.083138 \n",
       "L 384.017303 316.18455 \n",
       "L 386.048425 308.58823 \n",
       "L 388.587327 298.17789 \n",
       "L 391.12623 286.837782 \n",
       "L 394.172913 272.144895 \n",
       "L 397.727376 253.746767 \n",
       "L 401.78962 231.457765 \n",
       "L 407.882987 196.57563 \n",
       "L 416.007475 150.143417 \n",
       "L 420.069719 128.149667 \n",
       "L 423.624182 110.11051 \n",
       "L 426.670865 95.795175 \n",
       "L 429.209768 84.815316 \n",
       "L 431.74867 74.803299 \n",
       "L 433.779792 67.550682 \n",
       "L 435.810914 61.015947 \n",
       "L 437.842036 55.236302 \n",
       "L 439.873159 50.244652 \n",
       "L 441.3965 47.035306 \n",
       "L 442.919842 44.295571 \n",
       "L 444.443183 42.034221 \n",
       "L 445.966525 40.258502 \n",
       "L 446.982086 39.347357 \n",
       "L 447.997647 38.655905 \n",
       "L 449.013208 38.185131 \n",
       "L 450.028769 37.935706 \n",
       "L 451.04433 37.907983 \n",
       "L 452.059891 38.102004 \n",
       "L 453.075452 38.517491 \n",
       "L 454.091013 39.153854 \n",
       "L 455.106574 40.010185 \n",
       "L 456.122135 41.085266 \n",
       "L 457.645476 43.104609 \n",
       "L 459.168818 45.606153 \n",
       "L 460.692159 48.581885 \n",
       "L 462.215501 52.022273 \n",
       "L 463.738842 55.916296 \n",
       "L 465.769964 61.792218 \n",
       "L 467.801086 68.418808 \n",
       "L 469.832208 75.758339 \n",
       "L 472.371111 85.871295 \n",
       "L 474.910014 96.942703 \n",
       "L 477.956697 111.354358 \n",
       "L 481.00338 126.819476 \n",
       "L 485.065624 148.734502 \n",
       "L 490.143429 177.503522 \n",
       "L 501.3146 241.345507 \n",
       "L 505.376844 263.097241 \n",
       "L 508.931308 280.850284 \n",
       "L 511.977991 294.869047 \n",
       "L 514.516893 305.568432 \n",
       "L 517.055796 315.272318 \n",
       "L 519.086918 322.260354 \n",
       "L 521.11804 328.516063 \n",
       "L 523.149162 334.00383 \n",
       "L 524.672503 337.596727 \n",
       "L 526.195845 340.728477 \n",
       "L 527.719186 343.38905 \n",
       "L 529.242528 345.569923 \n",
       "L 530.765869 347.264108 \n",
       "L 531.78143 348.12044 \n",
       "L 532.796991 348.756802 \n",
       "L 533.812552 349.172289 \n",
       "L 534.828113 349.36631 \n",
       "L 535.843674 349.338588 \n",
       "L 536.859236 349.089162 \n",
       "L 537.874797 348.618388 \n",
       "L 538.890358 347.926937 \n",
       "L 539.905919 347.015792 \n",
       "L 540.92148 345.886251 \n",
       "L 542.444821 343.786049 \n",
       "L 543.968163 341.204876 \n",
       "L 545.491504 338.150998 \n",
       "L 547.014846 334.6342 \n",
       "L 549.045968 329.244715 \n",
       "L 551.07709 323.083138 \n",
       "L 553.108212 316.18455 \n",
       "L 555.139334 308.58823 \n",
       "L 557.678236 298.17789 \n",
       "L 560.217139 286.837782 \n",
       "L 563.263822 272.144895 \n",
       "L 566.818285 253.746767 \n",
       "L 570.88053 231.457765 \n",
       "L 576.973896 196.57563 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_35\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 75.794534 140.829804 \n",
       "L 78.841217 114.284959 \n",
       "L 81.38012 94.278702 \n",
       "L 83.411242 80.016971 \n",
       "L 85.442364 67.550682 \n",
       "L 86.965706 59.498886 \n",
       "L 88.489047 52.640094 \n",
       "L 90.012389 47.035306 \n",
       "L 91.02795 44.02054 \n",
       "L 92.043511 41.597424 \n",
       "L 93.059072 39.775541 \n",
       "L 94.074633 38.562096 \n",
       "L 94.582413 38.185131 \n",
       "L 95.090194 37.961886 \n",
       "L 95.597974 37.892582 \n",
       "L 96.105755 37.977286 \n",
       "L 96.613535 38.215915 \n",
       "L 97.121316 38.608234 \n",
       "L 98.136877 39.852235 \n",
       "L 99.152438 41.704371 \n",
       "L 100.167999 44.157316 \n",
       "L 101.18356 47.201371 \n",
       "L 102.199121 50.824499 \n",
       "L 103.722462 57.312997 \n",
       "L 105.245804 65.01394 \n",
       "L 106.769145 73.858836 \n",
       "L 108.800267 87.294172 \n",
       "L 110.831389 102.409954 \n",
       "L 113.370292 123.301693 \n",
       "L 116.416975 150.613921 \n",
       "L 120.987 194.126922 \n",
       "L 126.064805 242.27702 \n",
       "L 129.111488 269.165121 \n",
       "L 131.65039 289.561784 \n",
       "L 133.681512 304.197374 \n",
       "L 135.712634 317.085876 \n",
       "L 137.235976 325.482076 \n",
       "L 138.759317 332.705668 \n",
       "L 140.282659 338.692408 \n",
       "L 141.29822 341.969666 \n",
       "L 142.313781 344.660351 \n",
       "L 143.329342 346.753823 \n",
       "L 144.344903 348.241804 \n",
       "L 145.360464 349.118409 \n",
       "L 145.868245 349.326267 \n",
       "L 146.376025 349.380172 \n",
       "L 146.883806 349.280069 \n",
       "L 147.391586 349.026057 \n",
       "L 147.899367 348.618388 \n",
       "L 148.914928 347.343843 \n",
       "L 149.930489 345.461473 \n",
       "L 150.94605 342.978723 \n",
       "L 151.961611 339.905409 \n",
       "L 152.977172 336.253685 \n",
       "L 154.500513 329.723781 \n",
       "L 156.023855 321.983545 \n",
       "L 157.547196 313.101816 \n",
       "L 159.578318 299.621764 \n",
       "L 161.60944 284.466928 \n",
       "L 164.148343 263.535266 \n",
       "L 167.195026 236.189442 \n",
       "L 171.76505 192.6576 \n",
       "L 176.842855 144.532236 \n",
       "L 179.889539 117.681216 \n",
       "L 182.428441 97.32713 \n",
       "L 184.459563 82.732506 \n",
       "L 186.490685 69.890414 \n",
       "L 188.014027 61.532154 \n",
       "L 189.537368 54.348814 \n",
       "L 191.06071 48.404282 \n",
       "L 192.076271 45.156064 \n",
       "L 193.091832 42.495006 \n",
       "L 194.107393 40.431632 \n",
       "L 195.122954 38.9741 \n",
       "L 196.138515 38.128175 \n",
       "L 196.646295 37.935706 \n",
       "L 197.154076 37.897202 \n",
       "L 197.661856 38.012703 \n",
       "L 198.169637 38.282094 \n",
       "L 198.677417 38.705109 \n",
       "L 199.692978 40.010185 \n",
       "L 200.708539 41.92277 \n",
       "L 201.7241 44.435302 \n",
       "L 202.739661 47.537845 \n",
       "L 203.755222 51.218129 \n",
       "L 205.278564 57.789374 \n",
       "L 206.801905 65.568827 \n",
       "L 208.325247 74.487299 \n",
       "L 210.356369 88.011934 \n",
       "L 212.387491 103.205674 \n",
       "L 214.926394 124.177052 \n",
       "L 217.973077 151.556203 \n",
       "L 222.543101 195.106454 \n",
       "L 227.620906 243.206609 \n",
       "L 230.667589 270.020283 \n",
       "L 233.206492 290.33159 \n",
       "L 235.237614 304.885103 \n",
       "L 237.268736 317.68066 \n",
       "L 238.792077 326.000897 \n",
       "L 240.315419 333.143913 \n",
       "L 241.83876 339.046178 \n",
       "L 242.854322 342.265324 \n",
       "L 243.869883 344.896728 \n",
       "L 244.885444 346.929985 \n",
       "L 245.901005 348.357053 \n",
       "L 246.916566 349.172289 \n",
       "L 247.424346 349.349368 \n",
       "L 247.932127 349.372471 \n",
       "L 248.439907 349.241573 \n",
       "L 248.947688 348.956805 \n",
       "L 249.455468 348.518449 \n",
       "L 250.471029 347.182854 \n",
       "L 251.48659 345.240072 \n",
       "L 252.502151 342.697784 \n",
       "L 253.517712 339.566044 \n",
       "L 254.533273 335.857236 \n",
       "L 256.056615 329.244715 \n",
       "L 257.579956 321.426121 \n",
       "L 259.103298 312.470994 \n",
       "L 261.13442 298.901909 \n",
       "L 263.165542 283.669416 \n",
       "L 265.704444 262.658529 \n",
       "L 268.751127 235.246324 \n",
       "L 273.321152 191.678093 \n",
       "L 278.398957 143.603623 \n",
       "L 281.44564 116.82756 \n",
       "L 283.984543 96.559233 \n",
       "L 286.015665 82.046974 \n",
       "L 288.046787 69.29808 \n",
       "L 289.570128 61.015947 \n",
       "L 291.09347 53.913326 \n",
       "L 292.616811 48.053386 \n",
       "L 293.632372 44.863344 \n",
       "L 294.647933 42.26162 \n",
       "L 295.663494 40.258502 \n",
       "L 296.679055 38.861911 \n",
       "L 297.186836 38.392884 \n",
       "L 297.694616 38.077371 \n",
       "L 298.202397 37.915684 \n",
       "L 298.710177 37.907983 \n",
       "L 299.217958 38.054276 \n",
       "L 299.725738 38.354418 \n",
       "L 300.233519 38.808112 \n",
       "L 301.24908 40.174212 \n",
       "L 302.264641 42.147172 \n",
       "L 303.280202 44.71919 \n",
       "L 304.295763 47.880097 \n",
       "L 305.311324 51.617392 \n",
       "L 306.834665 58.271125 \n",
       "L 308.358007 66.12878 \n",
       "L 309.881349 75.120475 \n",
       "L 311.912471 88.733875 \n",
       "L 313.943593 104.004971 \n",
       "L 316.482495 125.055159 \n",
       "L 319.529178 152.500148 \n",
       "L 324.099203 196.085928 \n",
       "L 329.177008 244.134238 \n",
       "L 332.223691 270.872423 \n",
       "L 334.762593 291.097571 \n",
       "L 336.793715 305.568432 \n",
       "L 338.824837 318.270538 \n",
       "L 340.348179 326.514483 \n",
       "L 341.871521 333.576639 \n",
       "L 343.394862 339.394196 \n",
       "L 344.410423 342.555103 \n",
       "L 345.425984 345.127122 \n",
       "L 346.441545 347.100082 \n",
       "L 347.457106 348.466181 \n",
       "L 347.964887 348.919875 \n",
       "L 348.472667 349.220017 \n",
       "L 348.980448 349.36631 \n",
       "L 349.488228 349.358609 \n",
       "L 349.996009 349.196922 \n",
       "L 350.503789 348.881409 \n",
       "L 351.01157 348.412382 \n",
       "L 352.027131 347.015792 \n",
       "L 353.042692 345.012674 \n",
       "L 354.058253 342.410949 \n",
       "L 355.073814 339.220907 \n",
       "L 356.089375 335.455162 \n",
       "L 357.612716 328.760284 \n",
       "L 359.136058 320.863643 \n",
       "L 360.659399 311.835471 \n",
       "L 362.690521 298.17789 \n",
       "L 364.721643 282.868342 \n",
       "L 367.260546 261.779062 \n",
       "L 370.307229 234.301559 \n",
       "L 375.385034 185.804031 \n",
       "L 379.955059 142.676988 \n",
       "L 383.001742 115.976943 \n",
       "L 385.540644 95.795175 \n",
       "L 387.571766 81.365856 \n",
       "L 389.602888 68.710664 \n",
       "L 391.12623 60.504987 \n",
       "L 392.649571 53.483366 \n",
       "L 394.172913 47.708249 \n",
       "L 395.188474 44.576509 \n",
       "L 396.204035 42.034221 \n",
       "L 397.219596 40.091439 \n",
       "L 398.235157 38.755845 \n",
       "L 398.742937 38.317488 \n",
       "L 399.250718 38.03272 \n",
       "L 399.758498 37.901823 \n",
       "L 400.266279 37.924925 \n",
       "L 400.774059 38.102004 \n",
       "L 401.28184 38.432885 \n",
       "L 402.297401 39.554592 \n",
       "L 403.312962 41.28561 \n",
       "L 404.328523 43.619094 \n",
       "L 405.344084 46.545816 \n",
       "L 406.359645 50.054203 \n",
       "L 407.882987 56.37644 \n",
       "L 409.406328 63.919451 \n",
       "L 410.92967 72.61615 \n",
       "L 412.960792 85.871295 \n",
       "L 414.991914 100.829372 \n",
       "L 417.530816 121.559357 \n",
       "L 420.577499 148.734502 \n",
       "L 425.147524 192.167839 \n",
       "L 430.733109 245.059868 \n",
       "L 433.779792 271.721509 \n",
       "L 436.318695 291.859697 \n",
       "L 438.349817 306.247332 \n",
       "L 440.380939 318.855485 \n",
       "L 441.904281 327.022813 \n",
       "L 443.427622 334.00383 \n",
       "L 444.950964 339.736449 \n",
       "L 445.966525 342.838991 \n",
       "L 446.982086 345.351523 \n",
       "L 447.997647 347.264108 \n",
       "L 449.013208 348.569185 \n",
       "L 449.520988 348.992199 \n",
       "L 450.028769 349.26159 \n",
       "L 450.536549 349.377091 \n",
       "L 451.04433 349.338588 \n",
       "L 451.55211 349.146118 \n",
       "L 452.059891 348.799872 \n",
       "L 453.075452 347.647574 \n",
       "L 454.091013 345.886251 \n",
       "L 455.106574 343.522866 \n",
       "L 456.122135 340.566766 \n",
       "L 457.137696 337.029642 \n",
       "L 458.661037 330.665745 \n",
       "L 460.184379 323.083138 \n",
       "L 461.70772 314.349259 \n",
       "L 463.738842 301.048869 \n",
       "L 465.769964 286.051143 \n",
       "L 468.308867 265.280411 \n",
       "L 471.35555 238.070591 \n",
       "L 475.925575 194.616693 \n",
       "L 481.51116 141.75237 \n",
       "L 484.557843 115.129398 \n",
       "L 487.096746 95.034989 \n",
       "L 489.127868 80.68918 \n",
       "L 491.15899 68.128191 \n",
       "L 492.682331 59.999293 \n",
       "L 494.205673 53.058949 \n",
       "L 495.729014 47.368885 \n",
       "L 496.744575 44.295571 \n",
       "L 497.760136 41.81282 \n",
       "L 498.775697 39.93045 \n",
       "L 499.791258 38.655905 \n",
       "L 500.299039 38.248236 \n",
       "L 500.806819 37.994225 \n",
       "L 501.3146 37.894122 \n",
       "L 501.82238 37.948026 \n",
       "L 502.330161 38.155884 \n",
       "L 502.837941 38.517491 \n",
       "L 503.853503 39.700369 \n",
       "L 504.869064 41.491981 \n",
       "L 505.884625 43.885243 \n",
       "L 506.900186 46.870691 \n",
       "L 507.915747 50.436519 \n",
       "L 509.439088 56.842013 \n",
       "L 510.96243 64.46414 \n",
       "L 512.485771 73.235112 \n",
       "L 514.516893 86.580616 \n",
       "L 516.548015 101.617843 \n",
       "L 519.086918 122.429117 \n",
       "L 522.133601 149.673342 \n",
       "L 526.703625 193.147371 \n",
       "L 532.289211 245.983465 \n",
       "L 535.335894 272.567505 \n",
       "L 537.874797 292.617937 \n",
       "L 539.905919 306.921778 \n",
       "L 541.937041 319.435479 \n",
       "L 543.460382 327.525866 \n",
       "L 544.983724 334.425468 \n",
       "L 546.507065 340.072922 \n",
       "L 547.522626 343.116977 \n",
       "L 548.538187 345.569923 \n",
       "L 549.553748 347.422058 \n",
       "L 550.569309 348.666059 \n",
       "L 551.07709 349.058378 \n",
       "L 551.58487 349.297008 \n",
       "L 552.092651 349.381712 \n",
       "L 552.600431 349.312407 \n",
       "L 553.108212 349.089162 \n",
       "L 553.615992 348.712198 \n",
       "L 554.631553 347.498752 \n",
       "L 555.647114 345.676869 \n",
       "L 556.662675 343.253753 \n",
       "L 557.678236 340.238987 \n",
       "L 558.693797 336.644492 \n",
       "L 560.217139 330.197464 \n",
       "L 561.74048 322.535891 \n",
       "L 563.263822 313.727913 \n",
       "L 565.294944 300.337427 \n",
       "L 567.326066 285.260848 \n",
       "L 569.864969 264.409238 \n",
       "L 572.911652 237.130877 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p07bd779b14)\" style=\"fill: none; stroke: #2ca02c; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 44.845313 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 44.845313 22.318125 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- Plot 2 -->\n",
       "    <g transform=\"translate(306.812812 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-50\" d=\"M 1259 4147 \n",
       "L 1259 2394 \n",
       "L 2053 2394 \n",
       "Q 2494 2394 2734 2622 \n",
       "Q 2975 2850 2975 3272 \n",
       "Q 2975 3691 2734 3919 \n",
       "Q 2494 4147 2053 4147 \n",
       "L 1259 4147 \n",
       "z\n",
       "M 628 4666 \n",
       "L 2053 4666 \n",
       "Q 2838 4666 3239 4311 \n",
       "Q 3641 3956 3641 3272 \n",
       "Q 3641 2581 3239 2228 \n",
       "Q 2838 1875 2053 1875 \n",
       "L 1259 1875 \n",
       "L 1259 0 \n",
       "L 628 0 \n",
       "L 628 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-50\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"60.302734\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6f\" x=\"88.085938\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-74\" x=\"149.267578\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"188.476562\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-32\" x=\"220.263672\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p07bd779b14\">\n",
       "   <rect x=\"44.845313\" y=\"22.318125\" width=\"558\" height=\"342.638043\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 1000x618.034 with 1 Axes>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"610.045312pt\" height=\"388.834293pt\" viewBox=\"0 0 610.045312 388.834293\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2024-11-04T11:59:10.710387</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.9.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 388.834293 \n",
       "L 610.045312 388.834293 \n",
       "L 610.045312 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "L 44.845313 22.318125 \n",
       "z\n",
       "\" style=\"fill: #f2f2f2; fill-opacity: 0.5\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 70.208949 364.956168 \n",
       "L 70.208949 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"mfa5ee33c1c\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"70.208949\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(62.257386 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 150.943911 364.956168 \n",
       "L 150.943911 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"150.943911\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(142.992348 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 231.678873 364.956168 \n",
       "L 231.678873 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"231.678873\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(223.72731 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 312.413835 364.956168 \n",
       "L 312.413835 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"312.413835\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(304.462272 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 393.148797 364.956168 \n",
       "L 393.148797 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"393.148797\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(385.197235 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 473.883759 364.956168 \n",
       "L 473.883759 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"473.883759\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 2.5 -->\n",
       "      <g transform=\"translate(465.932197 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 554.618721 364.956168 \n",
       "L 554.618721 22.318125 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mfa5ee33c1c\" x=\"554.618721\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 3.0 -->\n",
       "      <g transform=\"translate(546.667159 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 44.845313 349.383445 \n",
       "L 602.845312 349.383445 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <defs>\n",
       "       <path id=\"m01706bbb40\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"349.383445\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- −1.00 -->\n",
       "      <g transform=\"translate(7.2 353.182663) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2212\" d=\"M 678 2272 \n",
       "L 4684 2272 \n",
       "L 4684 1741 \n",
       "L 678 1741 \n",
       "L 678 2272 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-31\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 44.845313 310.447063 \n",
       "L 602.845312 310.447063 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"310.447063\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- −0.75 -->\n",
       "      <g transform=\"translate(7.2 314.246281) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-37\" d=\"M 525 4666 \n",
       "L 3525 4666 \n",
       "L 3525 4397 \n",
       "L 1831 0 \n",
       "L 1172 0 \n",
       "L 2766 4134 \n",
       "L 525 4134 \n",
       "L 525 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 44.845313 271.510681 \n",
       "L 602.845312 271.510681 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"271.510681\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- −0.50 -->\n",
       "      <g transform=\"translate(7.2 275.309899) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 44.845313 232.574299 \n",
       "L 602.845312 232.574299 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"232.574299\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- −0.25 -->\n",
       "      <g transform=\"translate(7.2 236.373517) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path d=\"M 44.845313 193.637917 \n",
       "L 602.845312 193.637917 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"193.637917\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 0.00 -->\n",
       "      <g transform=\"translate(15.579688 197.437136) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path d=\"M 44.845313 154.701535 \n",
       "L 602.845312 154.701535 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"154.701535\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 0.25 -->\n",
       "      <g transform=\"translate(15.579688 158.500754) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path d=\"M 44.845313 115.765153 \n",
       "L 602.845312 115.765153 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"115.765153\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 0.50 -->\n",
       "      <g transform=\"translate(15.579688 119.564372) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <path d=\"M 44.845313 76.828771 \n",
       "L 602.845312 76.828771 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"76.828771\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 0.75 -->\n",
       "      <g transform=\"translate(15.579688 80.62799) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <path d=\"M 44.845313 37.892389 \n",
       "L 602.845312 37.892389 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m01706bbb40\" x=\"44.845313\" y=\"37.892389\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_16\">\n",
       "      <!-- 1.00 -->\n",
       "      <g transform=\"translate(15.579688 41.691608) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_33\">\n",
       "    <path d=\"M 70.208949 193.637917 \n",
       "L 99.152438 165.869786 \n",
       "L 114.893634 151.085411 \n",
       "L 128.095927 138.991476 \n",
       "L 139.774878 128.594813 \n",
       "L 150.438269 119.39791 \n",
       "L 160.593879 110.939284 \n",
       "L 169.733928 103.605203 \n",
       "L 178.873978 96.559523 \n",
       "L 187.506246 90.190435 \n",
       "L 195.630734 84.4657 \n",
       "L 203.755222 79.017297 \n",
       "L 211.37193 74.172656 \n",
       "L 218.988638 69.59379 \n",
       "L 226.097565 65.568964 \n",
       "L 233.206492 61.792336 \n",
       "L 240.315419 58.271225 \n",
       "L 247.424346 55.012456 \n",
       "L 254.025493 52.226887 \n",
       "L 260.626639 49.677625 \n",
       "L 267.227786 47.368932 \n",
       "L 273.828932 45.304664 \n",
       "L 280.430079 43.488272 \n",
       "L 286.523445 42.034242 \n",
       "L 292.616811 40.79608 \n",
       "L 298.710177 39.775551 \n",
       "L 304.803543 38.974106 \n",
       "L 310.89691 38.392887 \n",
       "L 316.990276 38.032721 \n",
       "L 323.083642 37.894122 \n",
       "L 329.177008 37.977286 \n",
       "L 335.270374 38.282096 \n",
       "L 341.36374 38.808117 \n",
       "L 347.457106 39.5546 \n",
       "L 353.550472 40.520483 \n",
       "L 359.643838 41.70439 \n",
       "L 365.737204 43.104635 \n",
       "L 371.83057 44.719224 \n",
       "L 378.431717 46.707571 \n",
       "L 385.032864 48.941448 \n",
       "L 391.63401 51.417124 \n",
       "L 398.235157 54.130461 \n",
       "L 404.836303 57.076924 \n",
       "L 411.945231 60.505099 \n",
       "L 419.054158 64.191286 \n",
       "L 426.163085 68.12834 \n",
       "L 433.272012 72.308633 \n",
       "L 440.88872 77.048224 \n",
       "L 448.505427 82.047193 \n",
       "L 456.629915 87.652775 \n",
       "L 464.754403 93.526621 \n",
       "L 473.386672 100.044879 \n",
       "L 482.526721 107.237641 \n",
       "L 492.174551 115.12978 \n",
       "L 502.330161 123.739452 \n",
       "L 512.993552 133.076466 \n",
       "L 524.672503 143.604145 \n",
       "L 537.874797 155.817111 \n",
       "L 553.615992 170.702035 \n",
       "L 576.466115 192.658366 \n",
       "L 577.481676 193.637917 \n",
       "L 577.481676 193.637917 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_34\">\n",
       "    <path d=\"M 70.208949 193.637917 \n",
       "L 78.841217 152.500715 \n",
       "L 83.411242 131.72548 \n",
       "L 87.473486 114.285337 \n",
       "L 91.02795 100.044879 \n",
       "L 94.074633 88.734126 \n",
       "L 97.121316 78.35637 \n",
       "L 99.660218 70.487804 \n",
       "L 102.199121 63.380019 \n",
       "L 104.230243 58.271225 \n",
       "L 106.261365 53.697732 \n",
       "L 108.292487 49.677625 \n",
       "L 110.323609 46.226801 \n",
       "L 111.846951 44.02057 \n",
       "L 113.370292 42.147193 \n",
       "L 114.893634 40.610836 \n",
       "L 116.416975 39.414918 \n",
       "L 117.940317 38.562099 \n",
       "L 119.463658 38.054277 \n",
       "L 120.479219 37.907984 \n",
       "L 121.49478 37.915684 \n",
       "L 122.510341 38.077372 \n",
       "L 123.525902 38.392887 \n",
       "L 125.049244 39.15386 \n",
       "L 126.572585 40.258514 \n",
       "L 128.095927 41.70439 \n",
       "L 129.619268 43.488272 \n",
       "L 131.14261 45.606191 \n",
       "L 132.665951 48.053436 \n",
       "L 134.697073 51.8192 \n",
       "L 136.728195 56.145778 \n",
       "L 138.759317 61.016062 \n",
       "L 140.790439 66.410791 \n",
       "L 143.329342 73.859014 \n",
       "L 145.868245 82.047193 \n",
       "L 148.407147 90.924742 \n",
       "L 151.45383 102.410273 \n",
       "L 155.008294 116.827951 \n",
       "L 158.562757 132.175202 \n",
       "L 163.132782 152.973303 \n",
       "L 169.226148 181.894382 \n",
       "L 180.9051 237.601939 \n",
       "L 185.475124 258.235677 \n",
       "L 189.537368 275.504861 \n",
       "L 193.091832 289.563029 \n",
       "L 196.138515 300.694977 \n",
       "L 198.677417 309.248218 \n",
       "L 201.21632 317.087256 \n",
       "L 203.755222 324.163665 \n",
       "L 205.786344 329.246155 \n",
       "L 207.817466 333.792391 \n",
       "L 209.848589 337.784393 \n",
       "L 211.879711 341.206376 \n",
       "L 213.403052 343.390561 \n",
       "L 214.926394 345.241592 \n",
       "L 216.449735 346.755351 \n",
       "L 217.973077 347.92847 \n",
       "L 219.496418 348.758339 \n",
       "L 221.01976 349.243113 \n",
       "L 222.035321 349.374011 \n",
       "L 223.050882 349.350908 \n",
       "L 224.066443 349.173828 \n",
       "L 225.589784 348.619925 \n",
       "L 227.113126 347.721233 \n",
       "L 228.636467 346.479753 \n",
       "L 230.159809 344.898246 \n",
       "L 231.68315 342.980231 \n",
       "L 233.206492 340.729975 \n",
       "L 234.729833 338.152483 \n",
       "L 236.760955 334.216809 \n",
       "L 238.792077 329.725224 \n",
       "L 240.823199 324.695489 \n",
       "L 242.854322 319.147493 \n",
       "L 245.393224 311.517307 \n",
       "L 247.932127 303.158901 \n",
       "L 250.97881 292.240562 \n",
       "L 254.025493 280.445268 \n",
       "L 257.579956 265.716063 \n",
       "L 261.6422 247.825448 \n",
       "L 266.720005 224.292521 \n",
       "L 274.844493 185.315643 \n",
       "L 281.953421 151.556765 \n",
       "L 286.523445 130.827876 \n",
       "L 290.585689 113.444032 \n",
       "L 294.140153 99.263778 \n",
       "L 297.186836 88.012182 \n",
       "L 299.725738 79.349462 \n",
       "L 302.264641 71.392778 \n",
       "L 304.803543 64.191286 \n",
       "L 306.834665 59.003889 \n",
       "L 308.865788 54.348895 \n",
       "L 310.89691 50.244713 \n",
       "L 312.928032 46.707571 \n",
       "L 314.451373 44.435335 \n",
       "L 315.974715 42.495029 \n",
       "L 317.498056 40.890971 \n",
       "L 319.021398 39.626728 \n",
       "L 320.544739 38.705113 \n",
       "L 322.068081 38.128177 \n",
       "L 323.083642 37.935706 \n",
       "L 324.099203 37.897202 \n",
       "L 325.114764 38.012704 \n",
       "L 326.130325 38.282096 \n",
       "L 327.653666 38.974106 \n",
       "L 329.177008 40.010195 \n",
       "L 330.700349 41.38806 \n",
       "L 332.223691 43.104635 \n",
       "L 333.747032 45.1561 \n",
       "L 335.270374 47.537892 \n",
       "L 337.301496 51.218194 \n",
       "L 339.332618 55.461688 \n",
       "L 341.36374 60.251591 \n",
       "L 343.394862 65.568964 \n",
       "L 345.933765 72.925207 \n",
       "L 348.472667 81.027174 \n",
       "L 351.01157 89.824814 \n",
       "L 354.058253 101.223464 \n",
       "L 357.104936 113.444032 \n",
       "L 360.659399 128.594813 \n",
       "L 364.721643 146.862726 \n",
       "L 370.307229 173.126965 \n",
       "L 385.540644 245.52295 \n",
       "L 389.602888 263.536382 \n",
       "L 393.157352 278.401387 \n",
       "L 396.204035 290.332838 \n",
       "L 399.250718 301.404301 \n",
       "L 401.78962 309.902294 \n",
       "L 404.328523 317.682044 \n",
       "L 406.867426 324.695489 \n",
       "L 408.898548 329.725224 \n",
       "L 410.92967 334.216809 \n",
       "L 412.960792 338.152483 \n",
       "L 414.991914 341.516682 \n",
       "L 416.515255 343.656711 \n",
       "L 418.038597 345.462994 \n",
       "L 419.561938 346.931513 \n",
       "L 421.08528 348.058999 \n",
       "L 422.608621 348.842946 \n",
       "L 424.131963 349.281608 \n",
       "L 425.147524 349.381712 \n",
       "L 426.163085 349.327807 \n",
       "L 427.178646 349.119948 \n",
       "L 428.701987 348.519985 \n",
       "L 430.225329 347.575456 \n",
       "L 431.74867 346.288462 \n",
       "L 433.272012 344.661868 \n",
       "L 434.795353 342.699291 \n",
       "L 436.318695 340.405098 \n",
       "L 437.842036 337.784393 \n",
       "L 439.873159 333.792391 \n",
       "L 441.904281 329.246155 \n",
       "L 443.935403 324.163665 \n",
       "L 446.474305 317.087256 \n",
       "L 449.013208 309.248218 \n",
       "L 451.55211 300.694977 \n",
       "L 454.598793 289.563029 \n",
       "L 457.645476 277.577938 \n",
       "L 461.19994 262.659641 \n",
       "L 465.262184 244.598327 \n",
       "L 470.339989 220.923979 \n",
       "L 488.620087 134.432843 \n",
       "L 492.682331 116.827951 \n",
       "L 496.236795 102.410273 \n",
       "L 499.283478 90.924742 \n",
       "L 502.330161 80.352725 \n",
       "L 504.869064 72.308633 \n",
       "L 507.407966 65.014074 \n",
       "L 509.439088 59.748536 \n",
       "L 511.47021 55.012456 \n",
       "L 513.501332 50.824563 \n",
       "L 515.532454 47.201417 \n",
       "L 517.055796 44.863379 \n",
       "L 518.579137 42.856318 \n",
       "L 520.102479 41.1847 \n",
       "L 521.62582 39.852245 \n",
       "L 523.149162 38.861916 \n",
       "L 524.672503 38.215917 \n",
       "L 525.688064 37.977286 \n",
       "L 526.703625 37.892582 \n",
       "L 527.719186 37.961887 \n",
       "L 528.734747 38.185133 \n",
       "L 530.258089 38.808117 \n",
       "L 531.78143 39.775551 \n",
       "L 533.304772 41.085281 \n",
       "L 534.828113 42.734395 \n",
       "L 536.351455 44.719224 \n",
       "L 537.874797 47.035351 \n",
       "L 539.905919 50.629865 \n",
       "L 541.937041 54.789895 \n",
       "L 543.968163 59.498993 \n",
       "L 545.999285 64.738536 \n",
       "L 548.538187 72.002144 \n",
       "L 551.07709 80.017179 \n",
       "L 553.615992 88.734126 \n",
       "L 556.662675 100.044879 \n",
       "L 559.709358 112.188033 \n",
       "L 563.263822 127.26266 \n",
       "L 567.326066 145.463324 \n",
       "L 572.403871 169.249761 \n",
       "L 577.481676 193.637917 \n",
       "L 577.481676 193.637917 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_35\">\n",
       "    <path d=\"M 70.208949 193.637917 \n",
       "L 75.794534 145.929321 \n",
       "L 78.841217 121.559771 \n",
       "L 81.38012 102.807686 \n",
       "L 83.411242 89.096656 \n",
       "L 85.442364 76.724062 \n",
       "L 87.473486 65.84831 \n",
       "L 88.996828 58.758333 \n",
       "L 90.520169 52.640167 \n",
       "L 92.043511 47.537892 \n",
       "L 93.059072 44.719224 \n",
       "L 94.074633 42.377587 \n",
       "L 95.090194 40.520483 \n",
       "L 96.105755 39.15386 \n",
       "L 97.121316 38.282096 \n",
       "L 97.629096 38.032721 \n",
       "L 98.136877 37.907984 \n",
       "L 98.644657 37.907984 \n",
       "L 99.152438 38.032721 \n",
       "L 99.660218 38.282096 \n",
       "L 100.675779 39.15386 \n",
       "L 101.69134 40.520483 \n",
       "L 102.706901 42.377587 \n",
       "L 103.722462 44.719224 \n",
       "L 104.738023 47.537892 \n",
       "L 106.261365 52.640167 \n",
       "L 107.784706 58.758333 \n",
       "L 109.308048 65.84831 \n",
       "L 110.831389 73.859014 \n",
       "L 112.862512 85.871532 \n",
       "L 114.893634 99.263778 \n",
       "L 117.432536 117.68161 \n",
       "L 120.479219 141.752884 \n",
       "L 124.541463 176.04352 \n",
       "L 133.173732 249.657828 \n",
       "L 136.220415 273.411544 \n",
       "L 138.759317 291.480372 \n",
       "L 140.790439 304.543106 \n",
       "L 142.821561 316.185926 \n",
       "L 144.344903 323.895815 \n",
       "L 145.868245 330.667192 \n",
       "L 147.391586 336.451271 \n",
       "L 148.914928 341.206376 \n",
       "L 149.930489 343.787562 \n",
       "L 150.94605 345.887773 \n",
       "L 151.961611 347.500283 \n",
       "L 152.977172 348.619925 \n",
       "L 153.992733 349.243113 \n",
       "L 154.500513 349.36785 \n",
       "L 155.008294 349.36785 \n",
       "L 155.516074 349.243113 \n",
       "L 156.023855 348.993738 \n",
       "L 157.039416 348.121974 \n",
       "L 158.054977 346.755351 \n",
       "L 159.070538 344.898246 \n",
       "L 160.086099 342.55661 \n",
       "L 161.10166 339.737941 \n",
       "L 162.625001 334.635667 \n",
       "L 164.148343 328.5175 \n",
       "L 165.671684 321.427523 \n",
       "L 167.195026 313.416819 \n",
       "L 169.226148 301.404301 \n",
       "L 171.25727 288.012056 \n",
       "L 173.796172 269.594223 \n",
       "L 176.842855 245.52295 \n",
       "L 180.9051 211.232313 \n",
       "L 189.537368 137.618006 \n",
       "L 192.584051 113.86429 \n",
       "L 195.122954 95.795462 \n",
       "L 197.154076 82.732728 \n",
       "L 199.185198 71.089907 \n",
       "L 200.708539 63.380019 \n",
       "L 202.231881 56.608641 \n",
       "L 203.755222 50.824563 \n",
       "L 205.278564 46.069458 \n",
       "L 206.294125 43.488272 \n",
       "L 207.309686 41.38806 \n",
       "L 208.325247 39.775551 \n",
       "L 209.340808 38.655909 \n",
       "L 210.356369 38.032721 \n",
       "L 210.86415 37.907984 \n",
       "L 211.37193 37.907984 \n",
       "L 211.879711 38.032721 \n",
       "L 212.387491 38.282096 \n",
       "L 213.403052 39.15386 \n",
       "L 214.418613 40.520483 \n",
       "L 215.434174 42.377587 \n",
       "L 216.449735 44.719224 \n",
       "L 217.465296 47.537892 \n",
       "L 218.988638 52.640167 \n",
       "L 220.511979 58.758333 \n",
       "L 222.035321 65.84831 \n",
       "L 223.558662 73.859014 \n",
       "L 225.589784 85.871532 \n",
       "L 227.620906 99.263778 \n",
       "L 230.159809 117.68161 \n",
       "L 233.206492 141.752884 \n",
       "L 237.268736 176.04352 \n",
       "L 245.901005 249.657828 \n",
       "L 248.947688 273.411544 \n",
       "L 251.48659 291.480372 \n",
       "L 253.517712 304.543106 \n",
       "L 255.548834 316.185926 \n",
       "L 257.072176 323.895815 \n",
       "L 258.595517 330.667192 \n",
       "L 260.118859 336.451271 \n",
       "L 261.6422 341.206376 \n",
       "L 262.657761 343.787562 \n",
       "L 263.673322 345.887773 \n",
       "L 264.688883 347.500283 \n",
       "L 265.704444 348.619925 \n",
       "L 266.720005 349.243113 \n",
       "L 267.227786 349.36785 \n",
       "L 267.735566 349.36785 \n",
       "L 268.243347 349.243113 \n",
       "L 268.751127 348.993738 \n",
       "L 269.766688 348.121974 \n",
       "L 270.782249 346.755351 \n",
       "L 271.79781 344.898246 \n",
       "L 272.813371 342.55661 \n",
       "L 273.828932 339.737941 \n",
       "L 275.352274 334.635667 \n",
       "L 276.875616 328.5175 \n",
       "L 278.398957 321.427523 \n",
       "L 279.922299 313.416819 \n",
       "L 281.953421 301.404301 \n",
       "L 283.984543 288.012056 \n",
       "L 286.523445 269.594223 \n",
       "L 289.570128 245.52295 \n",
       "L 293.632372 211.232313 \n",
       "L 302.264641 137.618006 \n",
       "L 305.311324 113.86429 \n",
       "L 307.850227 95.795462 \n",
       "L 309.881349 82.732728 \n",
       "L 311.912471 71.089907 \n",
       "L 313.435812 63.380019 \n",
       "L 314.959154 56.608641 \n",
       "L 316.482495 50.824563 \n",
       "L 318.005837 46.069458 \n",
       "L 319.021398 43.488272 \n",
       "L 320.036959 41.38806 \n",
       "L 321.05252 39.775551 \n",
       "L 322.068081 38.655909 \n",
       "L 323.083642 38.032721 \n",
       "L 323.591422 37.907984 \n",
       "L 324.099203 37.907984 \n",
       "L 324.606983 38.032721 \n",
       "L 325.114764 38.282096 \n",
       "L 326.130325 39.15386 \n",
       "L 327.145886 40.520483 \n",
       "L 328.161447 42.377587 \n",
       "L 329.177008 44.719224 \n",
       "L 330.192569 47.537892 \n",
       "L 331.71591 52.640167 \n",
       "L 333.239252 58.758333 \n",
       "L 334.762593 65.84831 \n",
       "L 336.285935 73.859014 \n",
       "L 338.317057 85.871532 \n",
       "L 340.348179 99.263778 \n",
       "L 342.887082 117.68161 \n",
       "L 345.933765 141.752884 \n",
       "L 349.996009 176.04352 \n",
       "L 358.628277 249.657828 \n",
       "L 361.67496 273.411544 \n",
       "L 364.213863 291.480372 \n",
       "L 366.244985 304.543106 \n",
       "L 368.276107 316.185926 \n",
       "L 369.799448 323.895815 \n",
       "L 371.32279 330.667192 \n",
       "L 372.846132 336.451271 \n",
       "L 374.369473 341.206376 \n",
       "L 375.385034 343.787562 \n",
       "L 376.400595 345.887773 \n",
       "L 377.416156 347.500283 \n",
       "L 378.431717 348.619925 \n",
       "L 379.447278 349.243113 \n",
       "L 379.955059 349.36785 \n",
       "L 380.462839 349.36785 \n",
       "L 380.97062 349.243113 \n",
       "L 381.4784 348.993738 \n",
       "L 382.493961 348.121974 \n",
       "L 383.509522 346.755351 \n",
       "L 384.525083 344.898246 \n",
       "L 385.540644 342.55661 \n",
       "L 386.556205 339.737941 \n",
       "L 388.079547 334.635667 \n",
       "L 389.602888 328.5175 \n",
       "L 391.12623 321.427523 \n",
       "L 392.649571 313.416819 \n",
       "L 394.680693 301.404301 \n",
       "L 396.711815 288.012056 \n",
       "L 399.250718 269.594223 \n",
       "L 402.297401 245.52295 \n",
       "L 406.359645 211.232313 \n",
       "L 414.991914 137.618006 \n",
       "L 418.038597 113.86429 \n",
       "L 420.577499 95.795462 \n",
       "L 422.608621 82.732728 \n",
       "L 424.639743 71.089907 \n",
       "L 426.163085 63.380019 \n",
       "L 427.686426 56.608641 \n",
       "L 429.209768 50.824563 \n",
       "L 430.733109 46.069458 \n",
       "L 431.74867 43.488272 \n",
       "L 432.764231 41.38806 \n",
       "L 433.779792 39.775551 \n",
       "L 434.795353 38.655909 \n",
       "L 435.810914 38.032721 \n",
       "L 436.318695 37.907984 \n",
       "L 436.826475 37.907984 \n",
       "L 437.334256 38.032721 \n",
       "L 437.842036 38.282096 \n",
       "L 438.857598 39.15386 \n",
       "L 439.873159 40.520483 \n",
       "L 440.88872 42.377587 \n",
       "L 441.904281 44.719224 \n",
       "L 442.919842 47.537892 \n",
       "L 444.443183 52.640167 \n",
       "L 445.966525 58.758333 \n",
       "L 447.489866 65.84831 \n",
       "L 449.013208 73.859014 \n",
       "L 451.04433 85.871532 \n",
       "L 453.075452 99.263778 \n",
       "L 455.614354 117.68161 \n",
       "L 458.661037 141.752884 \n",
       "L 462.723281 176.04352 \n",
       "L 471.35555 249.657828 \n",
       "L 474.402233 273.411544 \n",
       "L 476.941136 291.480372 \n",
       "L 478.972258 304.543106 \n",
       "L 481.00338 316.185926 \n",
       "L 482.526721 323.895815 \n",
       "L 484.050063 330.667192 \n",
       "L 485.573404 336.451271 \n",
       "L 487.096746 341.206376 \n",
       "L 488.112307 343.787562 \n",
       "L 489.127868 345.887773 \n",
       "L 490.143429 347.500283 \n",
       "L 491.15899 348.619925 \n",
       "L 492.174551 349.243113 \n",
       "L 492.682331 349.36785 \n",
       "L 493.190112 349.36785 \n",
       "L 493.697892 349.243113 \n",
       "L 494.205673 348.993738 \n",
       "L 495.221234 348.121974 \n",
       "L 496.236795 346.755351 \n",
       "L 497.252356 344.898246 \n",
       "L 498.267917 342.55661 \n",
       "L 499.283478 339.737941 \n",
       "L 500.806819 334.635667 \n",
       "L 502.330161 328.5175 \n",
       "L 503.853503 321.427523 \n",
       "L 505.376844 313.416819 \n",
       "L 507.407966 301.404301 \n",
       "L 509.439088 288.012056 \n",
       "L 511.977991 269.594223 \n",
       "L 515.024674 245.52295 \n",
       "L 519.086918 211.232313 \n",
       "L 527.719186 137.618006 \n",
       "L 530.765869 113.86429 \n",
       "L 533.304772 95.795462 \n",
       "L 535.335894 82.732728 \n",
       "L 537.367016 71.089907 \n",
       "L 538.890358 63.380019 \n",
       "L 540.413699 56.608641 \n",
       "L 541.937041 50.824563 \n",
       "L 543.460382 46.069458 \n",
       "L 544.475943 43.488272 \n",
       "L 545.491504 41.38806 \n",
       "L 546.507065 39.775551 \n",
       "L 547.522626 38.655909 \n",
       "L 548.538187 38.032721 \n",
       "L 549.045968 37.907984 \n",
       "L 549.553748 37.907984 \n",
       "L 550.061529 38.032721 \n",
       "L 550.569309 38.282096 \n",
       "L 551.58487 39.15386 \n",
       "L 552.600431 40.520483 \n",
       "L 553.615992 42.377587 \n",
       "L 554.631553 44.719224 \n",
       "L 555.647114 47.537892 \n",
       "L 557.170456 52.640167 \n",
       "L 558.693797 58.758333 \n",
       "L 560.217139 65.84831 \n",
       "L 561.74048 73.859014 \n",
       "L 563.771602 85.871532 \n",
       "L 565.802724 99.263778 \n",
       "L 568.341627 117.68161 \n",
       "L 571.38831 141.752884 \n",
       "L 575.450554 176.04352 \n",
       "L 577.481676 193.637917 \n",
       "L 577.481676 193.637917 \n",
       "\" clip-path=\"url(#p59735731ee)\" style=\"fill: none; stroke: #2ca02c; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 44.845313 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 44.845313 22.318125 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- Plot 1 -->\n",
       "    <g transform=\"translate(306.812812 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-50\" d=\"M 1259 4147 \n",
       "L 1259 2394 \n",
       "L 2053 2394 \n",
       "Q 2494 2394 2734 2622 \n",
       "Q 2975 2850 2975 3272 \n",
       "Q 2975 3691 2734 3919 \n",
       "Q 2494 4147 2053 4147 \n",
       "L 1259 4147 \n",
       "z\n",
       "M 628 4666 \n",
       "L 2053 4666 \n",
       "Q 2838 4666 3239 4311 \n",
       "Q 3641 3956 3641 3272 \n",
       "Q 3641 2581 3239 2228 \n",
       "Q 2838 1875 2053 1875 \n",
       "L 1259 1875 \n",
       "L 1259 0 \n",
       "L 628 0 \n",
       "L 628 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-50\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"60.302734\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6f\" x=\"88.085938\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-74\" x=\"149.267578\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"188.476562\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-31\" x=\"220.263672\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p59735731ee\">\n",
       "   <rect x=\"44.845313\" y=\"22.318125\" width=\"558\" height=\"342.638043\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 1000x618.034 with 1 Axes>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"610.045312pt\" height=\"388.834293pt\" viewBox=\"0 0 610.045312 388.834293\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2024-11-04T11:59:10.710434</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.9.2, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 388.834293 \n",
       "L 610.045312 388.834293 \n",
       "L 610.045312 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "L 44.845313 22.318125 \n",
       "z\n",
       "\" style=\"fill: #f2f2f2; fill-opacity: 0.5\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 70.208949 364.956168 \n",
       "L 70.208949 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"m97d65f18e6\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"70.208949\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(62.257386 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 150.943911 364.956168 \n",
       "L 150.943911 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"150.943911\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 0.5 -->\n",
       "      <g transform=\"translate(142.992348 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 231.678873 364.956168 \n",
       "L 231.678873 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"231.678873\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(223.72731 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 312.413835 364.956168 \n",
       "L 312.413835 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"312.413835\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 1.5 -->\n",
       "      <g transform=\"translate(304.462272 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 393.148797 364.956168 \n",
       "L 393.148797 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"393.148797\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 2.0 -->\n",
       "      <g transform=\"translate(385.197235 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 473.883759 364.956168 \n",
       "L 473.883759 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"473.883759\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 2.5 -->\n",
       "      <g transform=\"translate(465.932197 379.554606) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 554.618721 364.956168 \n",
       "L 554.618721 22.318125 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m97d65f18e6\" x=\"554.618721\" y=\"364.956168\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 3.0 -->\n",
       "      <g transform=\"translate(546.667159 379.554606) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 44.845313 349.381904 \n",
       "L 602.845312 349.381904 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <defs>\n",
       "       <path id=\"mdbb5c115ac\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"349.381904\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- −1.00 -->\n",
       "      <g transform=\"translate(7.2 353.181123) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-2212\" d=\"M 678 2272 \n",
       "L 4684 2272 \n",
       "L 4684 1741 \n",
       "L 678 1741 \n",
       "L 678 2272 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-31\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 44.845313 310.445715 \n",
       "L 602.845312 310.445715 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"310.445715\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- −0.75 -->\n",
       "      <g transform=\"translate(7.2 314.244934) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-37\" d=\"M 525 4666 \n",
       "L 3525 4666 \n",
       "L 3525 4397 \n",
       "L 1831 0 \n",
       "L 1172 0 \n",
       "L 2766 4134 \n",
       "L 525 4134 \n",
       "L 525 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 44.845313 271.509526 \n",
       "L 602.845312 271.509526 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"271.509526\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- −0.50 -->\n",
       "      <g transform=\"translate(7.2 275.308744) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 44.845313 232.573336 \n",
       "L 602.845312 232.573336 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"232.573336\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- −0.25 -->\n",
       "      <g transform=\"translate(7.2 236.372555) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-2212\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"83.789062\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"147.412109\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"179.199219\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"242.822266\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path d=\"M 44.845313 193.637147 \n",
       "L 602.845312 193.637147 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"193.637147\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 0.00 -->\n",
       "      <g transform=\"translate(15.579688 197.436365) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path d=\"M 44.845313 154.700957 \n",
       "L 602.845312 154.700957 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"154.700957\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 0.25 -->\n",
       "      <g transform=\"translate(15.579688 158.500176) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_7\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path d=\"M 44.845313 115.764768 \n",
       "L 602.845312 115.764768 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"115.764768\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 0.50 -->\n",
       "      <g transform=\"translate(15.579688 119.563987) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_8\">\n",
       "     <g id=\"line2d_29\">\n",
       "      <path d=\"M 44.845313 76.828578 \n",
       "L 602.845312 76.828578 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_30\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"76.828578\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 0.75 -->\n",
       "      <g transform=\"translate(15.579688 80.627797) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-37\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-35\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_9\">\n",
       "     <g id=\"line2d_31\">\n",
       "      <path d=\"M 44.845313 37.892389 \n",
       "L 602.845312 37.892389 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_32\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#mdbb5c115ac\" x=\"44.845313\" y=\"37.892389\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_16\">\n",
       "      <!-- 1.00 -->\n",
       "      <g transform=\"translate(15.579688 41.691608) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"159.033203\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_33\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 82.903462 157.243538 \n",
       "L 89.504608 138.990976 \n",
       "L 95.090194 124.177052 \n",
       "L 100.167999 111.354358 \n",
       "L 104.738023 100.436511 \n",
       "L 108.800267 91.293157 \n",
       "L 112.862512 82.732506 \n",
       "L 116.416975 75.758339 \n",
       "L 119.971439 69.29808 \n",
       "L 123.018122 64.191156 \n",
       "L 126.064805 59.498886 \n",
       "L 129.111488 55.236302 \n",
       "L 131.65039 52.022273 \n",
       "L 134.189293 49.123295 \n",
       "L 136.728195 46.545816 \n",
       "L 139.267098 44.295571 \n",
       "L 141.806 42.377565 \n",
       "L 143.837122 41.085266 \n",
       "L 145.868245 40.010185 \n",
       "L 147.899367 39.153854 \n",
       "L 149.930489 38.517491 \n",
       "L 151.961611 38.102004 \n",
       "L 153.992733 37.907983 \n",
       "L 156.023855 37.935706 \n",
       "L 158.054977 38.185131 \n",
       "L 160.086099 38.655905 \n",
       "L 162.117221 39.347357 \n",
       "L 164.148343 40.258502 \n",
       "L 166.179465 41.388043 \n",
       "L 168.210587 42.734372 \n",
       "L 170.749489 44.71919 \n",
       "L 173.288392 47.035306 \n",
       "L 175.827294 49.677567 \n",
       "L 178.366197 52.640094 \n",
       "L 180.9051 55.916296 \n",
       "L 183.951783 60.251481 \n",
       "L 186.998466 65.01394 \n",
       "L 190.045149 70.188418 \n",
       "L 193.599612 76.72387 \n",
       "L 197.154076 83.769022 \n",
       "L 200.708539 91.293157 \n",
       "L 204.770783 100.436511 \n",
       "L 208.833027 110.11051 \n",
       "L 213.403052 121.559357 \n",
       "L 218.480857 134.885666 \n",
       "L 224.574223 151.556203 \n",
       "L 232.190931 173.126296 \n",
       "L 256.056615 241.345507 \n",
       "L 262.149981 257.788607 \n",
       "L 267.227786 270.872423 \n",
       "L 271.79781 282.063738 \n",
       "L 275.860055 291.479118 \n",
       "L 279.922299 300.337427 \n",
       "L 283.476762 307.591743 \n",
       "L 287.031226 314.349259 \n",
       "L 290.585689 320.580516 \n",
       "L 293.632372 325.482076 \n",
       "L 296.679055 329.961296 \n",
       "L 299.725738 334.00383 \n",
       "L 302.264641 337.029642 \n",
       "L 304.803543 339.736449 \n",
       "L 307.342446 342.118229 \n",
       "L 309.881349 344.169685 \n",
       "L 312.420251 345.886251 \n",
       "L 314.451373 347.015792 \n",
       "L 316.482495 347.926937 \n",
       "L 318.513617 348.618388 \n",
       "L 320.544739 349.089162 \n",
       "L 322.575861 349.338588 \n",
       "L 324.606983 349.36631 \n",
       "L 326.638105 349.172289 \n",
       "L 328.669227 348.756802 \n",
       "L 330.700349 348.12044 \n",
       "L 332.731471 347.264108 \n",
       "L 334.762593 346.189028 \n",
       "L 336.793715 344.896728 \n",
       "L 339.332618 342.978723 \n",
       "L 341.871521 340.728477 \n",
       "L 344.410423 338.150998 \n",
       "L 346.949326 335.25202 \n",
       "L 349.488228 332.037992 \n",
       "L 352.534911 327.775407 \n",
       "L 355.581594 323.083138 \n",
       "L 358.628277 317.976214 \n",
       "L 361.67496 312.470994 \n",
       "L 365.229424 305.568432 \n",
       "L 368.783887 298.17789 \n",
       "L 372.846132 289.175456 \n",
       "L 376.908376 279.629068 \n",
       "L 381.4784 268.306971 \n",
       "L 386.556205 255.099557 \n",
       "L 392.141791 239.94471 \n",
       "L 399.250718 219.958138 \n",
       "L 410.92967 186.293225 \n",
       "L 421.59306 155.816528 \n",
       "L 428.194207 137.617513 \n",
       "L 433.779792 122.865055 \n",
       "L 438.857598 110.11051 \n",
       "L 443.427622 99.263474 \n",
       "L 447.489866 90.190176 \n",
       "L 451.04433 82.732506 \n",
       "L 454.598793 75.758339 \n",
       "L 458.153257 69.29808 \n",
       "L 461.19994 64.191156 \n",
       "L 464.246623 59.498886 \n",
       "L 467.293306 55.236302 \n",
       "L 469.832208 52.022273 \n",
       "L 472.371111 49.123295 \n",
       "L 474.910014 46.545816 \n",
       "L 477.448916 44.295571 \n",
       "L 479.987819 42.377565 \n",
       "L 482.018941 41.085266 \n",
       "L 484.050063 40.010185 \n",
       "L 486.081185 39.153854 \n",
       "L 488.112307 38.517491 \n",
       "L 490.143429 38.102004 \n",
       "L 492.174551 37.907983 \n",
       "L 494.205673 37.935706 \n",
       "L 496.236795 38.185131 \n",
       "L 498.267917 38.655905 \n",
       "L 500.299039 39.347357 \n",
       "L 502.330161 40.258502 \n",
       "L 504.361283 41.388043 \n",
       "L 506.392405 42.734372 \n",
       "L 508.931308 44.71919 \n",
       "L 511.47021 47.035306 \n",
       "L 514.009113 49.677567 \n",
       "L 516.548015 52.640094 \n",
       "L 519.086918 55.916296 \n",
       "L 522.133601 60.251481 \n",
       "L 525.180284 65.01394 \n",
       "L 528.226967 70.188418 \n",
       "L 531.78143 76.72387 \n",
       "L 535.335894 83.769022 \n",
       "L 538.890358 91.293157 \n",
       "L 542.952602 100.436511 \n",
       "L 547.014846 110.11051 \n",
       "L 551.58487 121.559357 \n",
       "L 556.662675 134.885666 \n",
       "L 562.756041 151.556203 \n",
       "L 570.372749 173.126296 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_34\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 77.317876 146.395253 \n",
       "L 80.87234 124.177052 \n",
       "L 83.919023 106.424009 \n",
       "L 86.457925 92.77795 \n",
       "L 88.996828 80.352515 \n",
       "L 91.02795 71.392613 \n",
       "L 93.059072 63.379893 \n",
       "L 95.090194 56.37644 \n",
       "L 96.613535 51.819131 \n",
       "L 98.136877 47.880097 \n",
       "L 99.660218 44.576509 \n",
       "L 101.18356 41.92277 \n",
       "L 102.199121 40.52047 \n",
       "L 103.214682 39.41491 \n",
       "L 104.230243 38.608234 \n",
       "L 105.245804 38.102004 \n",
       "L 106.261365 37.897202 \n",
       "L 107.276926 37.994225 \n",
       "L 108.292487 38.392884 \n",
       "L 109.308048 39.092407 \n",
       "L 110.323609 40.091439 \n",
       "L 111.33917 41.388043 \n",
       "L 112.354731 42.979706 \n",
       "L 113.878073 45.913535 \n",
       "L 115.401414 49.491383 \n",
       "L 116.924756 53.697654 \n",
       "L 118.448097 58.514009 \n",
       "L 120.479219 65.848172 \n",
       "L 122.510341 74.172477 \n",
       "L 124.541463 83.422425 \n",
       "L 127.080366 96.176722 \n",
       "L 129.619268 110.11051 \n",
       "L 132.665951 128.149667 \n",
       "L 136.220415 150.613921 \n",
       "L 141.29822 184.336932 \n",
       "L 149.930489 241.811502 \n",
       "L 153.484952 263.9726 \n",
       "L 156.531635 281.660123 \n",
       "L 159.070538 295.240749 \n",
       "L 161.60944 307.591743 \n",
       "L 163.640562 316.486208 \n",
       "L 165.671684 324.428806 \n",
       "L 167.702806 331.357997 \n",
       "L 169.226148 335.857236 \n",
       "L 170.749489 339.736449 \n",
       "L 172.272831 342.978723 \n",
       "L 173.796172 345.569923 \n",
       "L 174.811733 346.929985 \n",
       "L 175.827294 347.992964 \n",
       "L 176.842855 348.756802 \n",
       "L 177.858417 349.220017 \n",
       "L 178.873978 349.381712 \n",
       "L 179.889539 349.241573 \n",
       "L 180.9051 348.799872 \n",
       "L 181.920661 348.057466 \n",
       "L 182.936222 347.015792 \n",
       "L 183.951783 345.676869 \n",
       "L 184.967344 344.043293 \n",
       "L 186.490685 341.047534 \n",
       "L 188.014027 337.409119 \n",
       "L 189.537368 333.143913 \n",
       "L 191.06071 328.270509 \n",
       "L 193.091832 320.863643 \n",
       "L 195.122954 312.470994 \n",
       "L 197.154076 303.157589 \n",
       "L 199.692978 290.33159 \n",
       "L 202.231881 276.33537 \n",
       "L 205.278564 258.234587 \n",
       "L 208.833027 235.718091 \n",
       "L 213.910833 201.959379 \n",
       "L 222.035321 147.797438 \n",
       "L 225.589784 125.495231 \n",
       "L 228.636467 107.645226 \n",
       "L 231.17537 93.902031 \n",
       "L 233.714272 81.365856 \n",
       "L 235.745394 72.308463 \n",
       "L 237.776516 64.191156 \n",
       "L 239.807638 57.07683 \n",
       "L 241.33098 52.432757 \n",
       "L 242.854322 48.404282 \n",
       "L 244.377663 45.008969 \n",
       "L 245.901005 42.26162 \n",
       "L 246.916566 40.796066 \n",
       "L 247.932127 39.626719 \n",
       "L 248.947688 38.755845 \n",
       "L 249.963249 38.185131 \n",
       "L 250.97881 37.915684 \n",
       "L 251.994371 37.948026 \n",
       "L 253.009932 38.282094 \n",
       "L 254.025493 38.917241 \n",
       "L 255.041054 39.852235 \n",
       "L 256.056615 41.085266 \n",
       "L 257.072176 42.613942 \n",
       "L 258.595517 45.454658 \n",
       "L 260.118859 48.941394 \n",
       "L 261.6422 53.058949 \n",
       "L 263.165542 57.789374 \n",
       "L 265.196664 65.01394 \n",
       "L 267.227786 73.235112 \n",
       "L 269.258908 82.38919 \n",
       "L 271.79781 95.034989 \n",
       "L 274.336713 108.874096 \n",
       "L 277.383396 126.819476 \n",
       "L 280.93786 149.203702 \n",
       "L 286.015665 182.87066 \n",
       "L 294.647933 240.412106 \n",
       "L 298.202397 262.658529 \n",
       "L 301.24908 280.444069 \n",
       "L 303.787982 294.122642 \n",
       "L 306.326885 306.585114 \n",
       "L 308.358007 315.577602 \n",
       "L 310.389129 323.625264 \n",
       "L 312.420251 330.665745 \n",
       "L 313.943593 335.25202 \n",
       "L 315.466934 339.220907 \n",
       "L 316.990276 342.555103 \n",
       "L 318.513617 345.240072 \n",
       "L 319.529178 346.663471 \n",
       "L 320.544739 347.790304 \n",
       "L 321.5603 348.618388 \n",
       "L 322.575861 349.146118 \n",
       "L 323.591422 349.372471 \n",
       "L 324.606983 349.297008 \n",
       "L 325.622544 348.919875 \n",
       "L 326.638105 348.241804 \n",
       "L 327.653666 347.264108 \n",
       "L 328.669227 345.988683 \n",
       "L 329.684788 344.418 \n",
       "L 331.20813 341.515181 \n",
       "L 332.731471 337.967668 \n",
       "L 334.254813 333.790928 \n",
       "L 335.778154 329.003169 \n",
       "L 337.809276 321.705466 \n",
       "L 339.840398 313.415457 \n",
       "L 341.871521 304.197374 \n",
       "L 344.410423 291.479118 \n",
       "L 346.949326 277.576753 \n",
       "L 349.996009 259.568677 \n",
       "L 353.550472 237.130877 \n",
       "L 358.628277 203.426217 \n",
       "L 367.260546 145.928786 \n",
       "L 370.815009 123.739027 \n",
       "L 373.861693 106.018657 \n",
       "L 376.400595 92.405247 \n",
       "L 378.939498 80.016971 \n",
       "L 380.97062 71.089743 \n",
       "L 383.001742 63.112044 \n",
       "L 385.032864 56.145688 \n",
       "L 386.556205 51.617392 \n",
       "L 388.079547 47.708249 \n",
       "L 389.602888 44.435302 \n",
       "L 391.12623 41.81282 \n",
       "L 392.141791 40.431632 \n",
       "L 393.157352 39.347357 \n",
       "L 394.172913 38.562096 \n",
       "L 395.188474 38.077371 \n",
       "L 396.204035 37.894122 \n",
       "L 397.219596 38.012703 \n",
       "L 398.235157 38.432885 \n",
       "L 399.250718 39.153854 \n",
       "L 400.266279 40.174212 \n",
       "L 401.28184 41.491981 \n",
       "L 402.297401 43.104609 \n",
       "L 403.820742 46.069418 \n",
       "L 405.344084 49.677567 \n",
       "L 406.867426 53.913326 \n",
       "L 408.390767 58.75823 \n",
       "L 410.421889 66.12878 \n",
       "L 412.453011 74.487299 \n",
       "L 414.484133 83.769022 \n",
       "L 417.023036 96.559233 \n",
       "L 419.561938 110.524306 \n",
       "L 422.608621 128.594365 \n",
       "L 426.163085 151.084852 \n",
       "L 431.24089 184.825879 \n",
       "L 439.365378 239.008548 \n",
       "L 442.919842 261.338315 \n",
       "L 445.966525 279.220289 \n",
       "L 448.505427 292.995591 \n",
       "L 451.04433 305.568432 \n",
       "L 453.075452 314.658143 \n",
       "L 455.106574 322.810153 \n",
       "L 457.137696 329.961296 \n",
       "L 458.661037 334.6342 \n",
       "L 460.184379 338.692408 \n",
       "L 461.70772 342.118229 \n",
       "L 463.231062 344.896728 \n",
       "L 464.246623 346.383338 \n",
       "L 465.262184 347.573924 \n",
       "L 466.277745 348.466181 \n",
       "L 467.293306 349.058378 \n",
       "L 468.308867 349.349368 \n",
       "L 469.324428 349.338588 \n",
       "L 470.339989 349.026057 \n",
       "L 471.35555 348.412382 \n",
       "L 472.371111 347.498752 \n",
       "L 473.386672 346.286937 \n",
       "L 474.402233 344.779287 \n",
       "L 475.925575 341.969666 \n",
       "L 477.448916 338.51337 \n",
       "L 478.972258 334.425468 \n",
       "L 480.495599 329.723781 \n",
       "L 482.526721 322.535891 \n",
       "L 484.557843 314.349259 \n",
       "L 486.588965 305.227319 \n",
       "L 489.127868 292.617937 \n",
       "L 491.66677 278.810665 \n",
       "L 494.713453 260.896899 \n",
       "L 498.267917 238.539792 \n",
       "L 503.345722 204.892184 \n",
       "L 511.977991 147.329583 \n",
       "L 515.532454 125.055159 \n",
       "L 518.579137 107.237298 \n",
       "L 521.11804 93.526346 \n",
       "L 523.656942 81.026961 \n",
       "L 525.688064 72.001976 \n",
       "L 527.719186 63.919451 \n",
       "L 529.750308 56.842013 \n",
       "L 531.27365 52.226816 \n",
       "L 532.796991 48.228115 \n",
       "L 534.320333 44.863344 \n",
       "L 535.843674 42.147172 \n",
       "L 536.859236 40.702688 \n",
       "L 537.874797 39.554592 \n",
       "L 538.890358 38.705109 \n",
       "L 539.905919 38.155884 \n",
       "L 540.92148 37.907983 \n",
       "L 541.937041 37.961886 \n",
       "L 542.952602 38.317488 \n",
       "L 543.968163 38.9741 \n",
       "L 544.983724 39.93045 \n",
       "L 545.999285 41.184684 \n",
       "L 547.014846 42.734372 \n",
       "L 548.538187 45.606153 \n",
       "L 550.061529 49.123295 \n",
       "L 551.58487 53.270464 \n",
       "L 553.108212 58.029579 \n",
       "L 555.139334 65.290749 \n",
       "L 557.170456 73.54638 \n",
       "L 559.201578 82.732506 \n",
       "L 561.74048 95.414596 \n",
       "L 564.279383 109.285401 \n",
       "L 567.326066 127.262218 \n",
       "L 570.88053 149.673342 \n",
       "L 575.958335 183.359317 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #ff7f0e; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_35\">\n",
       "    <path d=\"M 70.208949 193.637147 \n",
       "L 75.286754 140.829804 \n",
       "L 77.825656 116.40187 \n",
       "L 79.856779 98.48611 \n",
       "L 81.887901 82.38919 \n",
       "L 83.411242 71.696691 \n",
       "L 84.934584 62.316255 \n",
       "L 86.457925 54.348814 \n",
       "L 87.981267 47.880097 \n",
       "L 88.996828 44.435302 \n",
       "L 90.012389 41.704371 \n",
       "L 91.02795 39.700369 \n",
       "L 92.043511 38.432885 \n",
       "L 92.551291 38.077371 \n",
       "L 93.059072 37.907983 \n",
       "L 93.566852 37.924925 \n",
       "L 94.074633 38.128175 \n",
       "L 94.582413 38.517491 \n",
       "L 95.090194 39.092407 \n",
       "L 96.105755 40.796066 \n",
       "L 97.121316 43.231 \n",
       "L 98.136877 46.38556 \n",
       "L 99.152438 50.244652 \n",
       "L 100.167999 54.789812 \n",
       "L 101.69134 62.845487 \n",
       "L 103.214682 72.308463 \n",
       "L 104.738023 83.076919 \n",
       "L 106.769145 99.263474 \n",
       "L 108.800267 117.25401 \n",
       "L 111.33917 141.75237 \n",
       "L 114.893634 178.478117 \n",
       "L 121.49478 247.364966 \n",
       "L 124.033683 271.721509 \n",
       "L 126.064805 289.561784 \n",
       "L 128.095927 305.568432 \n",
       "L 129.619268 316.18455 \n",
       "L 131.14261 325.482076 \n",
       "L 132.665951 333.360967 \n",
       "L 134.189293 339.736449 \n",
       "L 135.204854 343.116977 \n",
       "L 136.220415 345.782312 \n",
       "L 137.235976 347.719701 \n",
       "L 138.251537 348.919875 \n",
       "L 138.759317 349.241573 \n",
       "L 139.267098 349.377091 \n",
       "L 139.774878 349.326267 \n",
       "L 140.282659 349.089162 \n",
       "L 140.790439 348.666059 \n",
       "L 141.29822 348.057466 \n",
       "L 142.313781 346.286937 \n",
       "L 143.329342 343.786049 \n",
       "L 144.344903 340.566766 \n",
       "L 145.360464 336.644492 \n",
       "L 146.376025 332.037992 \n",
       "L 147.899367 323.894401 \n",
       "L 149.422708 314.349259 \n",
       "L 150.94605 303.505272 \n",
       "L 152.977172 287.229721 \n",
       "L 155.008294 269.165121 \n",
       "L 157.547196 244.597305 \n",
       "L 161.10166 207.820981 \n",
       "L 167.702806 138.990976 \n",
       "L 170.241709 114.706788 \n",
       "L 172.272831 96.942703 \n",
       "L 174.303953 81.026961 \n",
       "L 175.827294 70.487643 \n",
       "L 177.350636 61.273396 \n",
       "L 178.873978 53.483366 \n",
       "L 179.889539 49.123295 \n",
       "L 180.9051 45.454658 \n",
       "L 181.920661 42.495006 \n",
       "L 182.936222 40.258502 \n",
       "L 183.951783 38.755845 \n",
       "L 184.459563 38.282094 \n",
       "L 184.967344 37.994225 \n",
       "L 185.475124 37.892582 \n",
       "L 185.982905 37.977286 \n",
       "L 186.490685 38.248236 \n",
       "L 186.998466 38.705109 \n",
       "L 187.506246 39.347357 \n",
       "L 188.521807 41.184684 \n",
       "L 189.537368 43.751427 \n",
       "L 190.552929 47.035306 \n",
       "L 191.56849 51.020609 \n",
       "L 193.091832 58.271125 \n",
       "L 194.615173 66.978161 \n",
       "L 196.138515 77.048031 \n",
       "L 198.169637 92.405247 \n",
       "L 200.200759 109.69754 \n",
       "L 202.739661 133.527526 \n",
       "L 205.786344 164.424624 \n",
       "L 214.926394 259.124627 \n",
       "L 217.465296 282.466479 \n",
       "L 219.496418 299.262359 \n",
       "L 221.52754 314.039182 \n",
       "L 223.050882 323.625264 \n",
       "L 224.574223 331.812692 \n",
       "L 226.097565 338.51337 \n",
       "L 227.113126 342.118229 \n",
       "L 228.128687 345.012674 \n",
       "L 229.144248 347.182854 \n",
       "L 230.159809 348.618388 \n",
       "L 230.667589 349.058378 \n",
       "L 231.17537 349.312407 \n",
       "L 231.68315 349.380172 \n",
       "L 232.190931 349.26159 \n",
       "L 232.698711 348.956805 \n",
       "L 233.206492 348.466181 \n",
       "L 234.222053 346.929985 \n",
       "L 235.237614 344.660351 \n",
       "L 236.253175 341.66814 \n",
       "L 237.268736 337.967668 \n",
       "L 238.284297 333.576639 \n",
       "L 239.807638 325.74214 \n",
       "L 241.33098 316.486208 \n",
       "L 242.854322 305.908437 \n",
       "L 244.885444 289.947163 \n",
       "L 246.916566 272.144895 \n",
       "L 249.455468 247.82441 \n",
       "L 253.009932 211.231456 \n",
       "L 260.118859 137.160794 \n",
       "L 262.657761 113.024196 \n",
       "L 264.688883 95.414596 \n",
       "L 266.720005 79.68255 \n",
       "L 268.243347 69.29808 \n",
       "L 269.766688 60.251481 \n",
       "L 271.29003 52.640094 \n",
       "L 272.305591 48.404282 \n",
       "L 273.321152 44.863344 \n",
       "L 274.336713 42.034221 \n",
       "L 275.352274 39.93045 \n",
       "L 276.367835 38.562096 \n",
       "L 276.875616 38.155884 \n",
       "L 277.383396 37.935706 \n",
       "L 277.891177 37.901823 \n",
       "L 278.398957 38.054276 \n",
       "L 278.906738 38.392884 \n",
       "L 279.414518 38.917241 \n",
       "L 280.430079 40.52047 \n",
       "L 281.44564 42.856293 \n",
       "L 282.461201 45.913535 \n",
       "L 283.476762 49.677567 \n",
       "L 284.492323 54.13038 \n",
       "L 286.015665 62.053586 \n",
       "L 287.539006 71.392613 \n",
       "L 289.062348 82.046974 \n",
       "L 291.09347 98.098837 \n",
       "L 293.124592 115.976943 \n",
       "L 295.663494 140.369302 \n",
       "L 299.217958 177.016461 \n",
       "L 306.326885 251.025258 \n",
       "L 308.865788 275.086627 \n",
       "L 310.89691 292.617937 \n",
       "L 312.928032 308.2572 \n",
       "L 314.451373 318.563629 \n",
       "L 315.974715 327.525866 \n",
       "L 317.498056 335.047478 \n",
       "L 318.513617 339.220907 \n",
       "L 319.529178 342.697784 \n",
       "L 320.544739 345.461473 \n",
       "L 321.5603 347.498752 \n",
       "L 322.575861 348.799872 \n",
       "L 323.083642 349.172289 \n",
       "L 323.591422 349.358609 \n",
       "L 324.099203 349.358609 \n",
       "L 324.606983 349.172289 \n",
       "L 325.114764 348.799872 \n",
       "L 325.622544 348.241804 \n",
       "L 326.638105 346.571605 \n",
       "L 327.653666 344.169685 \n",
       "L 328.669227 341.047534 \n",
       "L 329.684788 337.220091 \n",
       "L 330.700349 332.705668 \n",
       "L 332.223691 324.69407 \n",
       "L 333.747032 315.272318 \n",
       "L 335.270374 304.541787 \n",
       "L 337.301496 288.39997 \n",
       "L 339.332618 270.446733 \n",
       "L 341.871521 245.983465 \n",
       "L 345.425984 209.283551 \n",
       "L 352.027131 140.369302 \n",
       "L 354.566033 115.976943 \n",
       "L 356.597155 98.098837 \n",
       "L 358.628277 82.046974 \n",
       "L 360.151619 71.392613 \n",
       "L 361.67496 62.053586 \n",
       "L 363.198302 54.13038 \n",
       "L 364.721643 47.708249 \n",
       "L 365.737204 44.295571 \n",
       "L 366.752765 41.597424 \n",
       "L 367.768326 39.626719 \n",
       "L 368.783887 38.392884 \n",
       "L 369.291668 38.054276 \n",
       "L 369.799448 37.901823 \n",
       "L 370.307229 37.935706 \n",
       "L 370.815009 38.155884 \n",
       "L 371.32279 38.562096 \n",
       "L 371.83057 39.153854 \n",
       "L 372.846132 40.890956 \n",
       "L 373.861693 43.358879 \n",
       "L 374.877254 46.545816 \n",
       "L 375.892815 50.436519 \n",
       "L 376.908376 55.012371 \n",
       "L 378.431717 63.112044 \n",
       "L 379.955059 72.61615 \n",
       "L 381.4784 83.422425 \n",
       "L 383.509522 99.653558 \n",
       "L 385.540644 117.681216 \n",
       "L 388.079547 142.214425 \n",
       "L 391.63401 178.965642 \n",
       "L 398.235157 247.82441 \n",
       "L 400.774059 272.144895 \n",
       "L 402.805181 289.947163 \n",
       "L 404.836303 305.908437 \n",
       "L 406.359645 316.486208 \n",
       "L 407.882987 325.74214 \n",
       "L 409.406328 333.576639 \n",
       "L 410.421889 337.967668 \n",
       "L 411.43745 341.66814 \n",
       "L 412.453011 344.660351 \n",
       "L 413.468572 346.929985 \n",
       "L 414.484133 348.466181 \n",
       "L 414.991914 348.956805 \n",
       "L 415.499694 349.26159 \n",
       "L 416.007475 349.380172 \n",
       "L 416.515255 349.312407 \n",
       "L 417.023036 349.058378 \n",
       "L 417.530816 348.618388 \n",
       "L 418.038597 347.992964 \n",
       "L 419.054158 346.189028 \n",
       "L 420.069719 343.655199 \n",
       "L 421.08528 340.403602 \n",
       "L 422.100841 336.449794 \n",
       "L 423.116402 331.812692 \n",
       "L 424.639743 323.625264 \n",
       "L 426.163085 314.039182 \n",
       "L 427.686426 303.157589 \n",
       "L 429.717548 286.837782 \n",
       "L 431.74867 268.736418 \n",
       "L 434.287573 244.134238 \n",
       "L 437.842036 207.333171 \n",
       "L 444.443183 138.532608 \n",
       "L 446.982086 114.284959 \n",
       "L 449.013208 96.559233 \n",
       "L 451.04433 80.68918 \n",
       "L 452.567671 70.188418 \n",
       "L 454.091013 61.015947 \n",
       "L 455.614354 53.270464 \n",
       "L 456.629915 48.941394 \n",
       "L 457.645476 45.304627 \n",
       "L 458.661037 42.377565 \n",
       "L 459.676598 40.174212 \n",
       "L 460.692159 38.705109 \n",
       "L 461.19994 38.248236 \n",
       "L 461.70772 37.977286 \n",
       "L 462.215501 37.892582 \n",
       "L 462.723281 37.994225 \n",
       "L 463.231062 38.282094 \n",
       "L 463.738842 38.755845 \n",
       "L 464.246623 39.41491 \n",
       "L 465.262184 41.28561 \n",
       "L 466.277745 43.885243 \n",
       "L 467.293306 47.201371 \n",
       "L 468.308867 51.218129 \n",
       "L 469.832208 58.514009 \n",
       "L 471.35555 67.263797 \n",
       "L 472.878892 77.373344 \n",
       "L 474.910014 92.77795 \n",
       "L 476.941136 110.11051 \n",
       "L 479.480038 133.979651 \n",
       "L 482.526721 164.905851 \n",
       "L 491.66677 259.568677 \n",
       "L 494.205673 282.868342 \n",
       "L 496.236795 299.621764 \n",
       "L 498.267917 314.349259 \n",
       "L 499.791258 323.894401 \n",
       "L 501.3146 332.037992 \n",
       "L 502.837941 338.692408 \n",
       "L 503.853503 342.265324 \n",
       "L 504.869064 345.127122 \n",
       "L 505.884625 347.264108 \n",
       "L 506.900186 348.666059 \n",
       "L 507.407966 349.089162 \n",
       "L 507.915747 349.326267 \n",
       "L 508.423527 349.377091 \n",
       "L 508.931308 349.241573 \n",
       "L 509.439088 348.919875 \n",
       "L 509.946869 348.412382 \n",
       "L 510.96243 346.842661 \n",
       "L 511.977991 344.539922 \n",
       "L 512.993552 341.515181 \n",
       "L 514.009113 337.78291 \n",
       "L 515.024674 333.360967 \n",
       "L 516.548015 325.482076 \n",
       "L 518.071357 316.18455 \n",
       "L 519.594698 305.568432 \n",
       "L 521.62582 289.561784 \n",
       "L 523.656942 271.721509 \n",
       "L 526.195845 247.364966 \n",
       "L 529.750308 210.744729 \n",
       "L 536.859236 136.704633 \n",
       "L 539.398138 112.60553 \n",
       "L 541.42926 95.034989 \n",
       "L 543.460382 79.349257 \n",
       "L 544.983724 69.003756 \n",
       "L 546.507065 59.999293 \n",
       "L 548.030407 52.432757 \n",
       "L 549.045968 48.228115 \n",
       "L 550.061529 44.71919 \n",
       "L 551.07709 41.92277 \n",
       "L 552.092651 39.852235 \n",
       "L 553.108212 38.517491 \n",
       "L 553.615992 38.128175 \n",
       "L 554.123773 37.924925 \n",
       "L 554.631553 37.907983 \n",
       "L 555.139334 38.077371 \n",
       "L 555.647114 38.432885 \n",
       "L 556.154895 38.9741 \n",
       "L 557.170456 40.610822 \n",
       "L 558.186017 42.979706 \n",
       "L 559.201578 46.069418 \n",
       "L 560.217139 49.865174 \n",
       "L 561.2327 54.348814 \n",
       "L 562.756041 62.316255 \n",
       "L 564.279383 71.696691 \n",
       "L 565.802724 82.38919 \n",
       "L 567.833846 98.48611 \n",
       "L 569.864969 116.40187 \n",
       "L 572.403871 140.829804 \n",
       "L 575.958335 177.503522 \n",
       "L 577.481676 193.637147 \n",
       "L 577.481676 193.637147 \n",
       "\" clip-path=\"url(#p3152bd29a5)\" style=\"fill: none; stroke: #2ca02c; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 44.845313 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 602.845312 364.956168 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 44.845313 364.956168 \n",
       "L 602.845312 364.956168 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 44.845313 22.318125 \n",
       "L 602.845312 22.318125 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"text_17\">\n",
       "    <!-- Plot 3 -->\n",
       "    <g transform=\"translate(306.812812 16.318125) scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path id=\"DejaVuSans-50\" d=\"M 1259 4147 \n",
       "L 1259 2394 \n",
       "L 2053 2394 \n",
       "Q 2494 2394 2734 2622 \n",
       "Q 2975 2850 2975 3272 \n",
       "Q 2975 3691 2734 3919 \n",
       "Q 2494 4147 2053 4147 \n",
       "L 1259 4147 \n",
       "z\n",
       "M 628 4666 \n",
       "L 2053 4666 \n",
       "Q 2838 4666 3239 4311 \n",
       "Q 3641 3956 3641 3272 \n",
       "Q 3641 2581 3239 2228 \n",
       "Q 2838 1875 2053 1875 \n",
       "L 1259 1875 \n",
       "L 1259 0 \n",
       "L 628 0 \n",
       "L 628 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#DejaVuSans-50\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6c\" x=\"60.302734\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-6f\" x=\"88.085938\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-74\" x=\"149.267578\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-20\" x=\"188.476562\"/>\n",
       "     <use xlink:href=\"#DejaVuSans-33\" x=\"220.263672\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p3152bd29a5\">\n",
       "   <rect x=\"44.845313\" y=\"22.318125\" width=\"558\" height=\"342.638043\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 1000x618.034 with 1 Axes>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px\n",
    "%config InlineBackend.figure_format = 'svg'\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "x = np.linspace(0, np.pi, 1000)\n",
    "for n in range(rank, 12, stride):  # noqa\n",
    "    print(n)\n",
    "    plt.plot(x, np.sin(n * x))\n",
    "plt.title(f\"Plot {rank}\")  # noqa"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AsyncResult(%px): pending>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%px --noblock\n",
    "import os\n",
    "import sys\n",
    "\n",
    "from IPython.display import HTML, Math, display\n",
    "\n",
    "\n",
    "def generate_output():\n",
    "    \"\"\"function for testing output\n",
    "\n",
    "    publishes two outputs of each type, and returns something\n",
    "    \"\"\"\n",
    "\n",
    "    print(\"stdout\")\n",
    "    print(\"stderr\", file=sys.stderr)\n",
    "\n",
    "    display(HTML(\"<b>HTML</b>\"))\n",
    "\n",
    "    print(\"stdout2\")\n",
    "    print(\"stderr2\", file=sys.stderr)\n",
    "\n",
    "    display(Math(r\"\\alpha=\\beta\"))\n",
    "\n",
    "    return os.getpid()\n",
    "\n",
    "\n",
    "generate_output()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When we retrieve the result, we can see the outputs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[stdout:0] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:1] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:2] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:3] \n",
      "stdout\n",
      "stdout2\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[stderr:0] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:1] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:2] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:3] \n",
      "stderr\n",
      "stderr2\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:15]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:11.014407Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "import os\nimport sys\n\nfrom IPython.display import HTML, Math, display\n\n\ndef generate_output():\n    \"\"\"function for testing output\n\n    publishes two outputs of each type, and returns something\n    \"\"\"\n\n    print(\"stdout\")\n    print(\"stderr\", file=sys.stderr)\n\n    display(HTML(\"<b>HTML</b>\"))\n\n    print(\"stdout2\")\n    print(\"stderr2\", file=sys.stderr)\n\n    display(Math(r\"\\alpha=\\beta\"))\n\n    return os.getpid()\n\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 15,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_67",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:11.016530Z",
      "started": "2024-11-04T10:59:11.001550Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:10.988225Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:17]: \u001b[0m25706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:11.015371Z",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "import os\nimport sys\n\nfrom IPython.display import HTML, Math, display\n\n\ndef generate_output():\n    \"\"\"function for testing output\n\n    publishes two outputs of each type, and returns something\n    \"\"\"\n\n    print(\"stdout\")\n    print(\"stderr\", file=sys.stderr)\n\n    display(HTML(\"<b>HTML</b>\"))\n\n    print(\"stdout2\")\n    print(\"stderr2\", file=sys.stderr)\n\n    display(Math(r\"\\alpha=\\beta\"))\n\n    return os.getpid()\n\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25706"
       },
       "execution_count": 17,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_68",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:11.017455Z",
      "started": "2024-11-04T10:59:11.003764Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:10.988672Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:16]: \u001b[0m25707"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:11.014525Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "import os\nimport sys\n\nfrom IPython.display import HTML, Math, display\n\n\ndef generate_output():\n    \"\"\"function for testing output\n\n    publishes two outputs of each type, and returns something\n    \"\"\"\n\n    print(\"stdout\")\n    print(\"stderr\", file=sys.stderr)\n\n    display(HTML(\"<b>HTML</b>\"))\n\n    print(\"stdout2\")\n    print(\"stderr2\", file=sys.stderr)\n\n    display(Math(r\"\\alpha=\\beta\"))\n\n    return os.getpid()\n\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25707"
       },
       "execution_count": 16,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_69",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:11.017012Z",
      "started": "2024-11-04T10:59:11.008010Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:10.988885Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:14]: \u001b[0m25711"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:11.016214Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "import os\nimport sys\n\nfrom IPython.display import HTML, Math, display\n\n\ndef generate_output():\n    \"\"\"function for testing output\n\n    publishes two outputs of each type, and returns something\n    \"\"\"\n\n    print(\"stdout\")\n    print(\"stderr\", file=sys.stderr)\n\n    display(HTML(\"<b>HTML</b>\"))\n\n    print(\"stdout2\")\n    print(\"stderr2\", file=sys.stderr)\n\n    display(Math(r\"\\alpha=\\beta\"))\n\n    return os.getpid()\n\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25711"
       },
       "execution_count": 14,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_70",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:11.017873Z",
      "started": "2024-11-04T10:59:11.009096Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:10.989072Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pxresult"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`%%px` also lets you choose some amount of the grouping of the outputs with `--group-outputs`:\n",
    "\n",
    "The choices are:\n",
    "\n",
    "* `type` - where stdout of each engine is displayed, then stderr, then rich output, etc. (the default)\n",
    "* `engine` - all of an engine's output is collected together\n",
    "* `order` - same as `type`, but individual displaypub outputs are interleaved.\n",
    "  That is, it will output the first plot from each engine, then the second from each,\n",
    "  etc.\n",
    "\n",
    "```{seealso}\n",
    "{meth}`.AsyncResult.display_outputs` for the grouping options.\n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:0] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:2] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:1] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:3] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:16]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.222476Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 16,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_71",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.225924Z",
      "started": "2024-11-04T10:59:33.214730Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.205767Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:17]: \u001b[0m25707"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.222977Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25707"
       },
       "execution_count": 17,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_73",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.226441Z",
      "started": "2024-11-04T10:59:33.216259Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206444Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:18]: \u001b[0m25706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.223382Z",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25706"
       },
       "execution_count": 18,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_72",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.227627Z",
      "started": "2024-11-04T10:59:33.216035Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206258Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:15]: \u001b[0m25711"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.224117Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25711"
       },
       "execution_count": 15,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_74",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.228377Z",
      "started": "2024-11-04T10:59:33.219181Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206615Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px --group-outputs=engine\n",
    "\n",
    "generate_output()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When you specify 'order', then individual display outputs (e.g. plots) will be interleaved.\n",
    "\n",
    "\n",
    "`%pxresult` calls {meth}`.AsyncResult.display_outputs` on the most recent request.\n",
    "It accepts the same output-grouping arguments as %%px, so you can use it to view\n",
    "a result in different ways:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[stdout:0] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:1] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:2] \n",
      "stdout\n",
      "stdout2\n",
      "[stdout:3] \n",
      "stdout\n",
      "stdout2\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[stderr:0] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:1] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:2] \n",
      "stderr\n",
      "stderr2\n",
      "[stderr:3] \n",
      "stderr\n",
      "stderr2\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:16]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.222476Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 16,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_71",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.225924Z",
      "started": "2024-11-04T10:59:33.214730Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.205767Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:18]: \u001b[0m25706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.223382Z",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25706"
       },
       "execution_count": 18,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_72",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.227627Z",
      "started": "2024-11-04T10:59:33.216035Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206258Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:17]: \u001b[0m25707"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.222977Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25707"
       },
       "execution_count": 17,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_73",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.226441Z",
      "started": "2024-11-04T10:59:33.216259Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206444Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:15]: \u001b[0m25711"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:33.224117Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "\ngenerate_output()\n",
      "execute_result": {
       "data": {
        "text/plain": "25711"
       },
       "execution_count": 15,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_74",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:33.228377Z",
      "started": "2024-11-04T10:59:33.219181Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:33.206615Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%pxresult --group-outputs=order"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Magics for multiple views\n",
    "\n",
    "All of the parallel magics are associated with a particular {class}`~.DirectView` object.\n",
    "You can change the active view by calling the {meth}`~.DirectView.activate` method\n",
    "on any view."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AsyncResult(%px): pending>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "even = rc[::2]\n",
    "even.activate()\n",
    "%px print(\"hi\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:2] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:0] hi\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "even.block = True\n",
    "%px print(\"hi\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When activating a View, you can also specify a _suffix_, so that a whole different\n",
    "set of magics are associated with that view, without replacing the existing ones.\n",
    "This way, you can also have more than one set of parallel magics registered at a time.\n",
    "\n",
    "Let's restore the default magics DirectView and add activate a new set of magics one for a single engine."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "rc.activate()  # restore default  for %px\n",
    "e0 = rc[0]\n",
    "e0.block = True\n",
    "e0.activate(suffix='0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:0] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:19]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:52.046818Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "generate_output()",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 19,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_79",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:52.048898Z",
      "started": "2024-11-04T10:59:52.035693Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:52.026609Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px0 generate_output()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The default `%px` is still on all engines:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:0] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:2] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] stdout\n",
       "stdout2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:1] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stderr:3] stderr\n",
       "stderr2\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<b>HTML</b>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:2]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 2
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:0]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 0
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:1]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 1
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:20]: \u001b[0m25707"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:58.874298Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "generate_output()",
      "execute_result": {
       "data": {
        "text/plain": "25707"
       },
       "execution_count": 20,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_82",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:58.878013Z",
      "started": "2024-11-04T10:59:58.866480Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:58.853554Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:20]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:58.874794Z",
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "generate_output()",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 20,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_80",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:58.878713Z",
      "started": "2024-11-04T10:59:58.863897Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:58.852885Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:19]: \u001b[0m25706"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:58.875032Z",
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "generate_output()",
      "execute_result": {
       "data": {
        "text/plain": "25706"
       },
       "execution_count": 19,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_81",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:58.879919Z",
      "started": "2024-11-04T10:59:58.866506Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:58.853329Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[output:3]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/latex": [
       "$\\displaystyle \\alpha=\\beta$"
      ],
      "text/plain": [
       "<IPython.core.display.Math object>"
      ]
     },
     "metadata": {
      "engine": 3
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:16]: \u001b[0m25711"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T10:59:58.876632Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "generate_output()",
      "execute_result": {
       "data": {
        "text/plain": "25711"
       },
       "execution_count": 16,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_83",
      "outputs": [
       {
        "data": {
         "text/html": "<b>HTML</b>",
         "text/plain": "<IPython.core.display.HTML object>"
        },
        "metadata": {},
        "transient": {}
       },
       {
        "data": {
         "text/latex": "$\\displaystyle \\alpha=\\beta$",
         "text/plain": "<IPython.core.display.Math object>"
        },
        "metadata": {},
        "transient": {}
       }
      ],
      "received": "2024-11-04T10:59:58.880366Z",
      "started": "2024-11-04T10:59:58.870708Z",
      "status": "ok",
      "stderr": "stderr\nstderr2\n",
      "stdout": "stdout\nstdout2\n",
      "submitted": "2024-11-04T10:59:58.853742Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px generate_output()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For convenience, the {class}`~.Client` has a {meth}`~.Client.activate` method as well,\n",
    "which creates a DirectView with `targets='all', block=True`, activates it, and returns the new View.\n",
    "\n",
    "The initial magics registered when you create a Client for the first time are the result of a call to\n",
    "{meth}`rc.activate` with no arguments."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parallel Exceptions"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When you raise exceptions with the parallel exception,\n",
    "the CompositeError raised locally will display your remote traceback."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "tags": [
     "raises-exception"
    ]
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[1:execute]\n",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)\n",
      "Cell \u001b[0;32mIn[20], line 3\u001b[0m\n",
      "\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrandom\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m random\n",
      "\u001b[0;32m----> 3\u001b[0m A \u001b[38;5;241m=\u001b[39m \u001b[43mrandom\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43minvalid shape\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:450\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:441\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random_sample\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32m_common.pyx:312\u001b[0m, in \u001b[0;36mnumpy.random._common.double_fill\u001b[0;34m()\u001b[0m\n",
      "\n",
      "\u001b[0;31mTypeError\u001b[0m: 'str' object cannot be interpreted as an integer\n",
      "[3:execute]\n",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)\n",
      "Cell \u001b[0;32mIn[17], line 3\u001b[0m\n",
      "\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrandom\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m random\n",
      "\u001b[0;32m----> 3\u001b[0m A \u001b[38;5;241m=\u001b[39m \u001b[43mrandom\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43minvalid shape\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:450\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:441\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random_sample\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32m_common.pyx:312\u001b[0m, in \u001b[0;36mnumpy.random._common.double_fill\u001b[0;34m()\u001b[0m\n",
      "\n",
      "\u001b[0;31mTypeError\u001b[0m: 'str' object cannot be interpreted as an integer\n",
      "[0:execute]\n",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)\n",
      "Cell \u001b[0;32mIn[21], line 3\u001b[0m\n",
      "\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrandom\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m random\n",
      "\u001b[0;32m----> 3\u001b[0m A \u001b[38;5;241m=\u001b[39m \u001b[43mrandom\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43minvalid shape\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:450\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:441\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random_sample\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32m_common.pyx:312\u001b[0m, in \u001b[0;36mnumpy.random._common.double_fill\u001b[0;34m()\u001b[0m\n",
      "\n",
      "\u001b[0;31mTypeError\u001b[0m: 'str' object cannot be interpreted as an integer\n",
      "[2:execute]\n",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)\n",
      "Cell \u001b[0;32mIn[21], line 3\u001b[0m\n",
      "\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mrandom\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m random\n",
      "\u001b[0;32m----> 3\u001b[0m A \u001b[38;5;241m=\u001b[39m \u001b[43mrandom\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m100\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43minvalid shape\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:450\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32mnumpy/random/mtrand.pyx:441\u001b[0m, in \u001b[0;36mnumpy.random.mtrand.RandomState.random_sample\u001b[0;34m()\u001b[0m\n",
      "\n",
      "File \u001b[0;32m_common.pyx:312\u001b[0m, in \u001b[0;36mnumpy.random._common.double_fill\u001b[0;34m()\u001b[0m\n",
      "\n",
      "\u001b[0;31mTypeError\u001b[0m: 'str' object cannot be interpreted as an integer\n"
     ]
    },
    {
     "ename": "AlreadyDisplayedError",
     "evalue": "4 errors",
     "output_type": "error",
     "traceback": [
      "4 errors"
     ]
    }
   ],
   "source": [
    "%%px\n",
    "from numpy.random import random\n",
    "\n",
    "A = random((100, 100, 'invalid shape'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Sometimes, an error will occur on just one engine,\n",
    "while the rest are still working.\n",
    "\n",
    "When this happens, you will see errors immediately,\n",
    "and can interrupt the execution:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AsyncResult(scatter): pending>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dv.scatter(\"rank\", rc.ids, flatten=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[0:execute]\n",
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)\n",
      "Cell \u001b[0;32mIn[22], line 4\u001b[0m\n",
      "\u001b[1;32m      1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mtime\u001b[39;00m\n",
      "\u001b[1;32m      3\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rank \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:  \u001b[38;5;66;03m# noqa\u001b[39;00m\n",
      "\u001b[0;32m----> 4\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrank 0 failed!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
      "\u001b[1;32m      5\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(\u001b[38;5;241m10\u001b[39m)\n",
      "\n",
      "\u001b[0;31mRuntimeError\u001b[0m: rank 0 failed!\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "87b7c9c1dbaa492f8b16883f0b86edea",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "%px:   0%|          | 0/4 [00:00<?, ?tasks/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "ename": "AlreadyDisplayedError",
     "evalue": "1 errors",
     "output_type": "error",
     "traceback": [
      "1 errors"
     ]
    }
   ],
   "source": [
    "%%px\n",
    "import time\n",
    "\n",
    "if rank == 0:  # noqa\n",
    "    raise RuntimeError(\"rank 0 failed!\")\n",
    "time.sleep(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Remember, Engines are IPython too, so the cell that is run remotely by %%px can in turn use a cell magic."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e6e06336c53c442e9a19466d3e959ef7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "%px:   0%|          | 0/4 [00:00<?, ?tasks/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] 403 μs ± 658 ns per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] 403 μs ± 553 ns per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] 403 μs ± 915 ns per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:0] 403 μs ± 827 ns per loop (mean ± std. dev. of 7 runs, 1,000 loops each)\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%px\n",
    "%%timeit\n",
    "from numpy.random import random\n",
    "from numpy.linalg import norm\n",
    "A = random((100, 100))\n",
    "norm(A, 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Engines as Kernels\n",
    "\n",
    "Engines are really the same object as the Kernels used elsewhere in IPython,\n",
    "with the minor exception that engines connect to a controller, while regular kernels\n",
    "bind their sockets, listening for connections from a QtConsole or other frontends.\n",
    "\n",
    "Sometimes for debugging or inspection purposes, you would like a QtConsole connected\n",
    "to an engine for more direct interaction. You can do this by first instructing\n",
    "the Engine to _also_ bind its kernel, to listen for connections:\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [],
   "source": [
    "%%px\n",
    "import ipyparallel as ipp\n",
    "\n",
    "ipp.bind_kernel()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Then, if your engines are local, you can start a qtconsole right on the engine(s):\n",
    "\n",
    "```{warning}\n",
    "Careful with this one, because if you have 16 engines, this will start 16 QtConsole windows!\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "%px %qtconsole"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Or display the connection info required to connect e.g. with\n",
    "\n",
    "```\n",
    "jupyter --console --existing [kernel-id.json]\n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[stdout:0] {\n",
       "  \"shell_port\": 52991,\n",
       "  \"iopub_port\": 52997,\n",
       "  \"stdin_port\": 53000,\n",
       "  \"control_port\": 52995,\n",
       "  \"hb_port\": 53001,\n",
       "  \"ip\": \"127.0.0.1\",\n",
       "  \"key\": \"bc4c184f-ebc3b4399b253e678e8eb3e3\",\n",
       "  \"transport\": \"tcp\",\n",
       "  \"signature_scheme\": \"hmac-sha256\",\n",
       "  \"kernel_name\": \"\"\n",
       "}\n",
       "\n",
       "Paste the above JSON into a file, and connect with:\n",
       "    $> jupyter <app> --existing <file>\n",
       "or, if you are local, you can connect with just:\n",
       "    $> jupyter <app> --existing /Users/minrk/.ipython/profile_default/security/kernel-25705.json\n",
       "or even just:\n",
       "    $> jupyter <app> --existing\n",
       "if this is the most recent Jupyter kernel you have started.\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:1] {\n",
       "  \"shell_port\": 52987,\n",
       "  \"iopub_port\": 52989,\n",
       "  \"stdin_port\": 52992,\n",
       "  \"control_port\": 52988,\n",
       "  \"hb_port\": 52994,\n",
       "  \"ip\": \"127.0.0.1\",\n",
       "  \"key\": \"bc4c184f-ebc3b4399b253e678e8eb3e3\",\n",
       "  \"transport\": \"tcp\",\n",
       "  \"signature_scheme\": \"hmac-sha256\",\n",
       "  \"kernel_name\": \"\"\n",
       "}\n",
       "\n",
       "Paste the above JSON into a file, and connect with:\n",
       "    $> jupyter <app> --existing <file>\n",
       "or, if you are local, you can connect with just:\n",
       "    $> jupyter <app> --existing /Users/minrk/.ipython/profile_default/security/kernel-25706.json\n",
       "or even just:\n",
       "    $> jupyter <app> --existing\n",
       "if this is the most recent Jupyter kernel you have started.\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:2] {\n",
       "  \"shell_port\": 52990,\n",
       "  \"iopub_port\": 52996,\n",
       "  \"stdin_port\": 52998,\n",
       "  \"control_port\": 52993,\n",
       "  \"hb_port\": 52999,\n",
       "  \"ip\": \"127.0.0.1\",\n",
       "  \"key\": \"bc4c184f-ebc3b4399b253e678e8eb3e3\",\n",
       "  \"transport\": \"tcp\",\n",
       "  \"signature_scheme\": \"hmac-sha256\",\n",
       "  \"kernel_name\": \"\"\n",
       "}\n",
       "\n",
       "Paste the above JSON into a file, and connect with:\n",
       "    $> jupyter <app> --existing <file>\n",
       "or, if you are local, you can connect with just:\n",
       "    $> jupyter <app> --existing /Users/minrk/.ipython/profile_default/security/kernel-25707.json\n",
       "or even just:\n",
       "    $> jupyter <app> --existing\n",
       "if this is the most recent Jupyter kernel you have started.\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[stdout:3] {\n",
       "  \"shell_port\": 53002,\n",
       "  \"iopub_port\": 53004,\n",
       "  \"stdin_port\": 53005,\n",
       "  \"control_port\": 53003,\n",
       "  \"hb_port\": 53006,\n",
       "  \"ip\": \"127.0.0.1\",\n",
       "  \"key\": \"bc4c184f-ebc3b4399b253e678e8eb3e3\",\n",
       "  \"transport\": \"tcp\",\n",
       "  \"signature_scheme\": \"hmac-sha256\",\n",
       "  \"kernel_name\": \"\"\n",
       "}\n",
       "\n",
       "Paste the above JSON into a file, and connect with:\n",
       "    $> jupyter <app> --existing <file>\n",
       "or, if you are local, you can connect with just:\n",
       "    $> jupyter <app> --existing /Users/minrk/.ipython/profile_default/security/kernel-25711.json\n",
       "or even just:\n",
       "    $> jupyter <app> --existing\n",
       "if this is the most recent Jupyter kernel you have started.\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%px %connect_info"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Legacy magics: `%autopx`\n",
    "\n",
    "Because IPython used to be a terminal-only, there are some leftover magics that are only meant for use in terminal IPython, where inputs are necessarily linear and the cost of re-typing things is higher.\n",
    "\n",
    "The use of `%autopx` is notebooks is __strongly__ discouraged.\n",
    "Even other stateful magics like `%pxconfig` should probaly not be used more than once in a notebook to set up defaults.\n",
    "Use `%%px` with arguments to make parallel cells clear and consistent and self-contained.\n",
    "\n",
    "The cost of `%autopx` is high (unclear notebooks, very surprising behavior on re-execution),\n",
    "and the benefit is small (saves a little typing)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "%autopx enabled\n"
     ]
    }
   ],
   "source": [
    "%autopx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[0:27]: \u001b[0m25705"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 0,
      "engine_uuid": "3b5836d1-d16d81c32917ce2147c20af7",
      "error": null,
      "execute_input": "os.getpid()",
      "execute_result": {
       "data": {
        "text/plain": "25705"
       },
       "execution_count": 27,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T11:00:52.095079Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[1:26]: \u001b[0m25706"
      ]
     },
     "metadata": {
      "after": null,
      "completed": null,
      "data": {},
      "engine_id": 1,
      "engine_uuid": "3bda9160-2b8556074eb4c377b62e6f81",
      "error": null,
      "execute_input": "os.getpid()",
      "execute_result": {
       "data": {
        "text/plain": "25706"
       },
       "execution_count": 26,
       "metadata": {}
      },
      "follow": null,
      "msg_id": null,
      "outputs": [],
      "received": null,
      "started": null,
      "status": null,
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T11:00:52.095184Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[2:27]: \u001b[0m25707"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T11:00:52.102695Z",
      "data": {},
      "engine_id": 2,
      "engine_uuid": "db223688-6994b7bdbc25d90bddac66e7",
      "error": null,
      "execute_input": "os.getpid()",
      "execute_result": {
       "data": {
        "text/plain": "25707"
       },
       "execution_count": 27,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_114",
      "outputs": [],
      "received": "2024-11-04T11:00:52.106305Z",
      "started": "2024-11-04T11:00:52.099286Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T11:00:52.095216Z"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "\u001b[0;31mOut[3:23]: \u001b[0m25711"
      ]
     },
     "metadata": {
      "after": [],
      "completed": "2024-11-04T11:00:52.103031Z",
      "data": {},
      "engine_id": 3,
      "engine_uuid": "d8b18943-9f945ec05692d14947250666",
      "error": null,
      "execute_input": "os.getpid()",
      "execute_result": {
       "data": {
        "text/plain": "25711"
       },
       "execution_count": 23,
       "metadata": {}
      },
      "follow": [],
      "is_broadcast": false,
      "is_coalescing": false,
      "msg_id": "dc435629-8bb652d0d09a5733938c7249_25688_115",
      "outputs": [],
      "received": "2024-11-04T11:00:52.107142Z",
      "started": "2024-11-04T11:00:52.099541Z",
      "status": "ok",
      "stderr": "",
      "stdout": "",
      "submitted": "2024-11-04T11:00:52.095443Z"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "os.getpid()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "%autopx disabled\n"
     ]
    }
   ],
   "source": [
    "%autopx"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Linting and formatting notebooks with IPython Parallel magics\n",
    "\n",
    "Increasingly, Python formatting and linting tools like `black` and `ruff` aim to support Jupyter notebooks with IPython kernels.\n",
    "These tools work best if the notebooks don't use any IPython syntax extensions like magics,\n",
    "but they have varying degrees of support for understanding magics that may contain Python code.\n",
    "\n",
    "`black` can be taught that `%%px` contains Python code to format with the [python-cell-magics option]\n",
    "\n",
    "```toml\n",
    "[tool.black]\n",
    "python_cell_magics = [\n",
    "    \"px\",\n",
    "]\n",
    "```\n",
    "\n",
    "`ruff` does not recognize `%%px` and its cell magic support is not configurable (as of 0.7.1),\n",
    "but may [gain a similar feature soon](https://github.com/astral-sh/ruff/issues/13977).\n",
    "\n",
    "`nbqa` can be used to invoke ruff, and _can_ be taught about cell magics like black:\n",
    "\n",
    "```toml\n",
    "[tool.nbqa.process_cells]\n",
    "# formatting is usually a good idea\n",
    "\"ruff format\" = [\n",
    "    \"px\",\n",
    "]\n",
    "# check may not be\n",
    "\"ruff check\" = [\n",
    "    \"px\",\n",
    "]\n",
    "```\n",
    "\n",
    "Running formatters on `%%px` is generally safe, but running linters that try to identify namespace issues is always going to be a challenge because, by their nature, parallel magics are working in multiple namespaces and the linters aren't going to understand that.\n",
    "\n",
    "Issues likely to come up:\n",
    "\n",
    "In general:\n",
    "\n",
    "If your linter _doesn't_ process `%%px` cells:\n",
    "\n",
    "- If you use `%%px --local` to define functions or variables, and your linters _don't_ process the `%%px` cells, then you are likely to face undefined name errors when you use the variables in local cells (e.g. F821)\n",
    "\n",
    "If your linter _does_ process `%%px` cells:\n",
    "\n",
    "- If you use `%%px` _without_ `--local`, the linter may erroneously identify your remote imports as duplicates (F401) to _reference_ things defined in single-cell. It's usually not too bad to put a `# noqa` on imports for this\n",
    "- If you define variables with `push` or `%px` and then reference them with `%%px`, you will likely see incorrect unused variable errors (F821).\n",
    "  This is harder to work around with `# noqa` since there are likely multiple references.\n",
    "  You can use a no-op assignment of a variable to itself, like `a = globals()['a']` which should convince the linter the variable is defined, but is annoying.\n",
    "\n",
    "The most straightforward way to address these is to run formatters but not linters on `%%px` cells, and do not use `%%px --local`.\n",
    "If you do want to use `%%px --local`, it will probably work best if you _do_ enable linting on `%%px`, but be careful in how you arrange your imports.\n",
    "\n",
    "You can also use per-file-ignores to disable namespace-checking lint (F8, F4).\n",
    "\n",
    "The example notebooks in the IPython Parallel repository currently run `ruff` via nbqa, and do enable linting,\n",
    "and you can check out the nbqa and ruff configuration used."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "01ce2f8f2b044624a7935dde29b807e4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "02b2fb2533f843138f934a50570922b1": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "0c41ca80d0834a129f9ee68f5e6f46c5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_958c7ee6595f4dfbbab8d4366d4fbfd5",
       "max": 4,
       "style": "IPY_MODEL_f889c274f45f40f39d285ffdf81d8927",
       "value": 4
      }
     },
     "18d2f36a79cb464493c4bb210c7f2d3d": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_f3f1103dc3f34671833adbe0b2dc07f4",
       "style": "IPY_MODEL_8ff495a1bd45497dbd7cdbd2c36e2080",
       "value": " 4/4 [00:01&lt;00:00,  3.07tasks/s]"
      }
     },
     "2397c7cfcd6b477d990d8e87ebee740b": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "2916a04172c14908a8fca98f367583eb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "2a1aa906910742e88b0e8dc8cc865c3c": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_d4df9e677d6d47f88dcc88680753f87f",
       "style": "IPY_MODEL_2916a04172c14908a8fca98f367583eb",
       "value": " 4/4 [00:00&lt;00:00,  4.03engine/s]"
      }
     },
     "38cf14d49e554edaa17109a726ff70b5": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_b851d6883c9f466ebe94d70bf9f9f8d6",
       "style": "IPY_MODEL_7524d5a02dd84ac289e685908fb99adb",
       "value": " 4/4 [00:08&lt;00:00,  2.16s/tasks]"
      }
     },
     "3e6a83f852b34d099ebee7ce2b994e80": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_f899c73fab574bde9f0e06c68d2c6f65",
       "style": "IPY_MODEL_5fba2ecdd37d4aedb0c39c1dd05332ca",
       "value": "%px: 100%"
      }
     },
     "525f9918fc0e4dc2a955a475c6372083": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5e30fa0143c9476f89f33bc05a27e4f7": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "5fba2ecdd37d4aedb0c39c1dd05332ca": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "6746fd5defb744b7a2b942e5ac957881": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_02b2fb2533f843138f934a50570922b1",
       "style": "IPY_MODEL_801c64f43c96412dbef731a87f404969",
       "value": "%px: 100%"
      }
     },
     "6b9440ff0889439fadfd6ac2eed48e6b": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_2397c7cfcd6b477d990d8e87ebee740b",
       "max": 4,
       "style": "IPY_MODEL_db29d3f772b54102932d4264cbed0f67",
       "value": 4
      }
     },
     "6cc56f1a384d4ed286658cdb559c3210": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_7dc7b51edbb9468ea980a6a330c9845a",
        "IPY_MODEL_6b9440ff0889439fadfd6ac2eed48e6b",
        "IPY_MODEL_2a1aa906910742e88b0e8dc8cc865c3c"
       ],
       "layout": "IPY_MODEL_5e30fa0143c9476f89f33bc05a27e4f7"
      }
     },
     "6fb9232163254f16a9b3ca6c9709e373": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "7524d5a02dd84ac289e685908fb99adb": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "7dc7b51edbb9468ea980a6a330c9845a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLModel",
      "state": {
       "layout": "IPY_MODEL_525f9918fc0e4dc2a955a475c6372083",
       "style": "IPY_MODEL_6fb9232163254f16a9b3ca6c9709e373",
       "value": "100%"
      }
     },
     "801c64f43c96412dbef731a87f404969": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "86c7d46257bf44d3a8bf5084e8dc142a": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "FloatProgressModel",
      "state": {
       "bar_style": "success",
       "layout": "IPY_MODEL_01ce2f8f2b044624a7935dde29b807e4",
       "max": 4,
       "style": "IPY_MODEL_dd77821774f64a42addbd009fc56e952",
       "value": 4
      }
     },
     "87b7c9c1dbaa492f8b16883f0b86edea": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_6746fd5defb744b7a2b942e5ac957881",
        "IPY_MODEL_86c7d46257bf44d3a8bf5084e8dc142a",
        "IPY_MODEL_38cf14d49e554edaa17109a726ff70b5"
       ],
       "layout": "IPY_MODEL_942db27ef44d4fc28cd27d8557b4c79f"
      }
     },
     "8ff495a1bd45497dbd7cdbd2c36e2080": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HTMLStyleModel",
      "state": {
       "description_width": "",
       "font_size": null,
       "text_color": null
      }
     },
     "942db27ef44d4fc28cd27d8557b4c79f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "958c7ee6595f4dfbbab8d4366d4fbfd5": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "a0ef3882f90e4c87987846ba5d40878c": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "b851d6883c9f466ebe94d70bf9f9f8d6": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "d4df9e677d6d47f88dcc88680753f87f": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "db29d3f772b54102932d4264cbed0f67": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "dd77821774f64a42addbd009fc56e952": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "e6e06336c53c442e9a19466d3e959ef7": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "HBoxModel",
      "state": {
       "children": [
        "IPY_MODEL_3e6a83f852b34d099ebee7ce2b994e80",
        "IPY_MODEL_0c41ca80d0834a129f9ee68f5e6f46c5",
        "IPY_MODEL_18d2f36a79cb464493c4bb210c7f2d3d"
       ],
       "layout": "IPY_MODEL_a0ef3882f90e4c87987846ba5d40878c"
      }
     },
     "f3f1103dc3f34671833adbe0b2dc07f4": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "f889c274f45f40f39d285ffdf81d8927": {
      "model_module": "@jupyter-widgets/controls",
      "model_module_version": "2.0.0",
      "model_name": "ProgressStyleModel",
      "state": {
       "description_width": ""
      }
     },
     "f899c73fab574bde9f0e06c68d2c6f65": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "2.0.0",
      "model_name": "LayoutModel",
      "state": {}
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
